{
  "contractName": "Registrar",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "sealedBids",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registryStarted",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "launchLength",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "rootNode",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_ens",
          "type": "address"
        },
        {
          "name": "_rootNode",
          "type": "bytes32"
        },
        {
          "name": "_startDate",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "AuctionStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "bidder",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "deposit",
          "type": "uint256"
        }
      ],
      "name": "NewBid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "status",
          "type": "uint8"
        }
      ],
      "name": "BidRevealed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "HashReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashInvalidated",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "state",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "entries",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        },
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "uint256"
        },
        {
          "name": "",
          "type": "uint256"
        },
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "isAllowed",
      "outputs": [
        {
          "name": "allowed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "getAllowedTime",
      "outputs": [
        {
          "name": "timestamp",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "startAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hashes",
          "type": "bytes32[]"
        }
      ],
      "name": "startAuctions",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "hash",
          "type": "bytes32"
        },
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        },
        {
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "shaBid",
      "outputs": [
        {
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "newBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "hashes",
          "type": "bytes32[]"
        },
        {
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "startAuctionsAndBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "unsealBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "bidder",
          "type": "address"
        },
        {
          "name": "seal",
          "type": "bytes32"
        }
      ],
      "name": "cancelBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "finalizeAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "releaseDeed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "unhashedName",
          "type": "string"
        }
      ],
      "name": "invalidateName",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "labels",
          "type": "bytes32[]"
        }
      ],
      "name": "eraseNode",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "transferRegistrars",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "hash",
          "type": "bytes32"
        },
        {
          "name": "deed",
          "type": "address"
        },
        {
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "acceptRegistrarTransfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516060806131ac83398101604090815281516020830151919092015160008054600160a060020a031916600160a060020a0385161781556001839055811161005b574261005d565b805b60045550505061313a806100726000396000f3006080604052600436106101325763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630230a07c811461013757806313c89a8f1461015157806315f733311461017b57806322ec1244146101d45780632525f5c11461020b578063267b69221461023c5780633f15457f146102a957806347872b42146102e75780635ddae283146103055780635e4317091461031d57806361d585da1461034e57806379ce9fac1461038a57806393503337146103bb578063983b94fb146103ea5780639c67f06f14610402578063ae1a0b0c14610417578063ce92dced14610445578063de10f04b14610450578063e27fe50f146104a5578063ea9e107a146104fa578063ede8acdb1461052e578063faff50a814610546578063febefd611461055b575b600080fd5b34801561014357600080fd5b5061014f6004356105a5565b005b34801561015d57600080fd5b5061016960043561089c565b60408051918252519081900360200190f35b34801561018757600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014f9436949293602493928401919081908401838280828437509497506108c09650505050505050565b3480156101e057600080fd5b5061016960043573ffffffffffffffffffffffffffffffffffffffff60243516604435606435610d3f565b34801561021757600080fd5b5061014f73ffffffffffffffffffffffffffffffffffffffff60043516602435610d90565b34801561024857600080fd5b5061025460043561101b565b6040518086600581111561026457fe5b60ff16815273ffffffffffffffffffffffffffffffffffffffff90951660208601525060408085019390935260608401919091526080830152519081900360a0019150f35b3480156102b557600080fd5b506102be611074565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102f357600080fd5b5061014f600435602435604435611090565b34801561031157600080fd5b5061014f6004356117e3565b34801561032957600080fd5b506102be73ffffffffffffffffffffffffffffffffffffffff60043516602435611b0d565b34801561035a57600080fd5b50610366600435611b40565b6040518082600581111561037657fe5b60ff16815260200191505060405180910390f35b34801561039657600080fd5b5061014f60043573ffffffffffffffffffffffffffffffffffffffff60243516611bd2565b3480156103c757600080fd5b506103d6600435602435611d82565b604080519115158252519081900360200190f35b3480156103f657600080fd5b5061014f600435611d98565b34801561040e57600080fd5b506101696120fa565b34801561042357600080fd5b5061042c612100565b6040805163ffffffff9092168252519081900360200190f35b61014f600435612107565b34801561045c57600080fd5b506040805160206004803580820135838102808601850190965280855261014f953695939460249493850192918291850190849080828437509497506122339650505050505050565b3480156104b157600080fd5b506040805160206004803580820135838102808601850190965280855261014f953695939460249493850192918291850190849080828437509497506122909650505050505050565b34801561050657600080fd5b5061014f60043573ffffffffffffffffffffffffffffffffffffffff602435166044356122c8565b34801561053a57600080fd5b5061014f6004356122cd565b34801561055257600080fd5b50610169612456565b6040805160206004803580820135838102808601850190965280855261014f95369593946024949385019291829185019084908082843750949750509335945061245c9350505050565b6000808260026105b482611b40565b60058111156105bf57fe5b141580610685575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b15801561063f57600080fd5b505af1158015610653573d6000803e3d6000fd5b505050506040513d602081101561066957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b1561068f57600080fd5b60008481526002602052604090208054600182015491945073ffffffffffffffffffffffffffffffffffffffff1692506301e13380014210801561078d575060008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309373ffffffffffffffffffffffffffffffffffffffff909316926302571be392602480820193602093909283900390910190829087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050506040513d602081101561077357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16145b1561079757600080fd5b600060028401819055600384015582547fffffffffffffffffffffffff00000000000000000000000000000000000000001683556107d48461246e565b8173ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561084557600080fd5b505af1158015610859573d6000803e3d6000fd5b505050600284015460408051918252518692507f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e169181900360200190a250505050565b6004547001000000000000000000000000000000006249d400818404020401919050565b600080826040518082805190602001908083835b6020831061091157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108d4565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900390912092506002915081905061096a83611b40565b600581111561097557fe5b1461097f57600080fd5b600661098a866126fc565b111561099557600080fd5b846040518082805190602001908083835b602083106109e357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109a6565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900390912060008181526002909252929020919750909550610a4b925086915061246e9050565b825473ffffffffffffffffffffffffffffffffffffffff1615610c2a57610a7d8360020154662386f26fc100006127a6565b60028481018290558454604080517fb0c80972000000000000000000000000000000000000000000000000000000008152929093046004830152600060248301819052925173ffffffffffffffffffffffffffffffffffffffff9091169263b0c80972926044808201939182900301818387803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b50508454604080517f13af4035000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921693506313af4035925060248082019260009290919082900301818387803b158015610b8657600080fd5b505af1158015610b9a573d6000803e3d6000fd5b50508454604080517fbbe427710000000000000000000000000000000000000000000000000000000081526103e86004820152905173ffffffffffffffffffffffffffffffffffffffff909216935063bbe42771925060248082019260009290919082900301818387803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050505b846040518082805190602001908083835b60208310610c7857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c3b565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040805192909401829003822060028a015460018b01549084529183019190915283519095508994507f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad93918190039091019150a35050600060028201819055600382015580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555050565b6040805194855273ffffffffffffffffffffffffffffffffffffffff939093166c01000000000000000000000000026020850152603484019190915260548301525160749181900391909101902090565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260036020908152604080832085845290915290205416801580610e6e57506206978063ffffffff168173ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610e3957600080fd5b505af1158015610e4d573d6000803e3d6000fd5b505050506040513d6020811015610e6357600080fd5b505101621275000142105b15610e7857600080fd5b604080517f13af4035000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff8316916313af403591602480830192600092919082900301818387803b158015610ee557600080fd5b505af1158015610ef9573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff83166000818152600360209081526040808320868452825280832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690558051928352600591830191909152805185927f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e792908290030190a3505050565b6000818152600260205260408120819081908190819061103a87611b40565b815460018301546002840154600390940154929a73ffffffffffffffffffffffffffffffffffffffff909216995097509195509350915050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806110a589338a8a610d3f565b33600090815260036020908152604080832084845290915290205490965073ffffffffffffffffffffffffffffffffffffffff1694508415156110e757600080fd5b336000908152600360209081526040808320898452825280832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690558b83526002825280832081517f3fa4f24500000000000000000000000000000000000000000000000000000000815291519097506111ce938c9373ffffffffffffffffffffffffffffffffffffffff8b1693633fa4f2459360048083019491928390030190829087803b15801561119d57600080fd5b505af11580156111b1573d6000803e3d6000fd5b505050506040513d60208110156111c757600080fd5b50516127be565b604080517fb0c809720000000000000000000000000000000000000000000000000000000081526004810183905260016024820152905191945073ffffffffffffffffffffffffffffffffffffffff87169163b0c809729160448082019260009290919082900301818387803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b5050505061126889611b40565b9150600282600581111561127857fe5b141561134a578473ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156112ee57600080fd5b505af1158015611302573d6000803e3d6000fd5b5050604080518681526001602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a36117d8565b600482600581111561135857fe5b1461136257600080fd5b662386f26fc1000083108061141457506202a30063ffffffff168460010154038573ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b505050506040513d602081101561141057600080fd5b5051115b156114e6578473ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561148a57600080fd5b505af115801561149e573d6000803e3d6000fd5b5050604080518681526000602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a36117d8565b836003015483111561163157835473ffffffffffffffffffffffffffffffffffffffff161561159d57508254604080517fbbe427710000000000000000000000000000000000000000000000000000000081526103e36004820152905173ffffffffffffffffffffffffffffffffffffffff90921691829163bbe4277191602480830192600092919082900301818387803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b505050505b6003840180546002808701919091559084905584547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716178555604080518581526020810192909252805133928c927f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e792918290030190a36117d8565b836002015483111561170f5760028401839055604080517fbbe427710000000000000000000000000000000000000000000000000000000081526103e36004820152905173ffffffffffffffffffffffffffffffffffffffff87169163bbe4277191602480830192600092919082900301818387803b1580156116b357600080fd5b505af11580156116c7573d6000803e3d6000fd5b5050604080518681526003602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a36117d8565b8473ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b5050604080518681526004602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a35b505050505050505050565b6000808260026117f282611b40565b60058111156117fd57fe5b1415806118c3575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b15801561187d57600080fd5b505af1158015611891573d6000803e3d6000fd5b505050506040513d60208110156118a757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b156118cd57600080fd5b60008054600154604080517f02571be300000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff909216926302571be3926024808401936020939083900390910190829087803b15801561194557600080fd5b505af1158015611959573d6000803e3d6000fd5b505050506040513d602081101561196f57600080fd5b5051925073ffffffffffffffffffffffffffffffffffffffff831630141561199657600080fd5b600084815260026020526040808220805482517ffaab9d3900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152935192965092169263faab9d39926024808201939182900301818387803b158015611a1357600080fd5b505af1158015611a27573d6000803e3d6000fd5b505083546001850154604080517fea9e107a000000000000000000000000000000000000000000000000000000008152600481018a905273ffffffffffffffffffffffffffffffffffffffff9384166024820152604481019290925251918716935063ea9e107a925060648082019260009290919082900301818387803b158015611ab157600080fd5b505af1158015611ac5573d6000803e3d6000fd5b505083547fffffffffffffffffffffffff0000000000000000000000000000000000000000168455505060006001830181905560028301819055600390920191909155505050565b600360209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6000818152600260205260408120611b588342611d82565b1515611b675760059150611bcc565b8060010154421015611bb35760018101547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5d0001421015611baa5760019150611bcc565b60049150611bcc565b60038101541515611bc75760009150611bcc565b600291505b50919050565b6000826002611be082611b40565b6005811115611beb57fe5b141580611cb1575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b158015611c6b57600080fd5b505af1158015611c7f573d6000803e3d6000fd5b505050506040513d6020811015611c9557600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b15611cbb57600080fd5b73ffffffffffffffffffffffffffffffffffffffff83161515611cdd57600080fd5b600084815260026020526040808220805482517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015293519296509216926313af4035926024808201939182900301818387803b158015611d5a57600080fd5b505af1158015611d6e573d6000803e3d6000fd5b50505050611d7c84846127cf565b50505050565b6000611d8d8361089c565b821190505b92915050565b6000816002611da682611b40565b6005811115611db157fe5b141580611e77575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b505050506040513d6020811015611e5b57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b15611e8157600080fd5b600083815260026020819052604090912090810154909250611eaa90662386f26fc100006127a6565b600283018190558254604080517fb0c809720000000000000000000000000000000000000000000000000000000081526004810193909352600160248401525173ffffffffffffffffffffffffffffffffffffffff9091169163b0c8097291604480830192600092919082900301818387803b158015611f2957600080fd5b505af1158015611f3d573d6000803e3d6000fd5b50505050611ffe838360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611fcd57600080fd5b505af1158015611fe1573d6000803e3d6000fd5b505050506040513d6020811015611ff757600080fd5b50516127cf565b8154604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921691638da5cb5b916004808201926020929091908290030181600087803b15801561206a57600080fd5b505af115801561207e573d6000803e3d6000fd5b505050506040513d602081101561209457600080fd5b505160028301546001840154604080519283526020830191909152805173ffffffffffffffffffffffffffffffffffffffff9093169286927f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67092908290030190a3505050565b60045481565b6249d40081565b33600090815260036020908152604080832084845290915281205473ffffffffffffffffffffffffffffffffffffffff1681101561214457600080fd5b662386f26fc1000034101561215857600080fd5b3433612162612b31565b73ffffffffffffffffffffffffffffffffffffffff9091168152604051908190036020019082f08015801561219b573d6000803e3d6000fd5b5033600081815260036020908152604080832088845282529182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790558151348152915193955091935085927fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29929181900390910190a35050565b8051151561224057600080fd5b600261226682600184510381518110151561225757fe5b90602001906020020151611b40565b600581111561227157fe5b141561227c57600080fd5b61228d600182510382600154612912565b50565b60005b81518110156122c4576122bc82828151811015156122ad57fe5b906020019060200201516122cd565b600101612293565b5050565b505050565b6000806004544210806122e75750600454630784ce000142115b806123ad575060008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309373ffffffffffffffffffffffffffffffffffffffff909316926302571be392602480820193602093909283900390910190829087803b15801561236857600080fd5b505af115801561237c573d6000803e3d6000fd5b505050506040513d602081101561239257600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614155b156123b757600080fd5b6123c083611b40565b915060018260058111156123d057fe5b14156123db576122c8565b60008260058111156123e957fe5b146123f357600080fd5b50600082815260026020818152604080842042620697800160018201819055938101859055600381019490945580519283525185927f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000392908290030190a2505050565b60015481565b61246582612290565b6122c481612107565b60008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309273ffffffffffffffffffffffffffffffffffffffff16916302571be391602480830192602092919082900301818887803b1580156124e457600080fd5b505af11580156124f8573d6000803e3d6000fd5b505050506040513d602081101561250e57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156122c45760008054600154604080517f06ab59230000000000000000000000000000000000000000000000000000000081526004810192909252602482018690523060448301525173ffffffffffffffffffffffffffffffffffffffff909216926306ab59239260648084019382900301818387803b1580156125aa57600080fd5b505af11580156125be573d6000803e3d6000fd5b5050600154604080519182526020820186905280519182900381018220600080547f1896f70a0000000000000000000000000000000000000000000000000000000085526004850183905260248501829052925191965073ffffffffffffffffffffffffffffffffffffffff9092169450631896f70a935060448084019382900301818387803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b505060008054604080517f5b0fc9c30000000000000000000000000000000000000000000000000000000081526004810187905260248101849052905173ffffffffffffffffffffffffffffffffffffffff9092169450635b0fc9c39350604480820193929182900301818387803b1580156126e057600080fd5b505af11580156126f4573d6000803e3d6000fd5b505050505050565b805160009060018381019184010182805b8284101561279d5750825160ff16608081101561272f57600184019350612792565b60e08160ff16101561274657600284019350612792565b60f08160ff16101561275d57600384019350612792565b60f88160ff16101561277457600484019350612792565b60fc8160ff16101561278b57600584019350612792565b6006840193505b60019091019061270d565b50949350505050565b6000818311156127b7575081611d92565b5080611d92565b6000818310156127b7575081611d92565b60008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309373ffffffffffffffffffffffffffffffffffffffff909316926302571be392602480820193602093909283900390910190829087803b15801561284a57600080fd5b505af115801561285e573d6000803e3d6000fd5b505050506040513d602081101561287457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156122c45760008054600154604080517f06ab592300000000000000000000000000000000000000000000000000000000815260048101929092526024820186905273ffffffffffffffffffffffffffffffffffffffff858116604484015290519216926306ab59239260648084019382900301818387803b1580156126e057600080fd5b600054825173ffffffffffffffffffffffffffffffffffffffff909116906306ab592390839085908790811061294457fe5b60209081029091010151604080517c010000000000000000000000000000000000000000000000000000000063ffffffff86160281526004810193909352602483019190915230604483015251606480830192600092919082900301818387803b1580156129b157600080fd5b505af11580156129c5573d6000803e3d6000fd5b505050508082848151811015156129d857fe5b6020908102909101810151604080519384529183015280519182900301902090506000831115612a1057612a10600184038383612912565b60008054604080517f1896f70a0000000000000000000000000000000000000000000000000000000081526004810185905260248101849052905173ffffffffffffffffffffffffffffffffffffffff90921692631896f70a9260448084019382900301818387803b158015612a8557600080fd5b505af1158015612a99573d6000803e3d6000fd5b505060008054604080517f5b0fc9c30000000000000000000000000000000000000000000000000000000081526004810187905260248101849052905173ffffffffffffffffffffffffffffffffffffffff9092169450635b0fc9c39350604480820193929182900301818387803b158015612b1457600080fd5b505af1158015612b28573d6000803e3d6000fd5b50505050505050565b6040516105cd80612b4283390190560060806040526040516020806105cd833981016040525160028054600160a060020a03909216600160a060020a031992831617905560008054909116331790554260019081556005805460ff1916909117905534600455610569806100646000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b3441081146100a85780630b5ab3d5146100cf57806313af4035146100e65780632b20e397146101145780633fa4f24514610152578063674f220f146101675780638da5cb5b1461017c578063b0c8097214610191578063bbe42771146101ae578063faab9d39146101c6575b600080fd5b3480156100b457600080fd5b506100bd6101f4565b60408051918252519081900360200190f35b3480156100db57600080fd5b506100e46101fa565b005b3480156100f257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff6004351661024c565b34801561012057600080fd5b5061012961031c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561015e57600080fd5b506100bd610338565b34801561017357600080fd5b5061012961033e565b34801561018857600080fd5b5061012961035a565b34801561019d57600080fd5b506100e46004356024351515610376565b3480156101ba57600080fd5b506100e4600435610410565b3480156101d257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff600435166104d2565b60015481565b60055460ff161561020a57600080fd5b60025460405173ffffffffffffffffffffffffffffffffffffffff90911690303180156108fc02916000818181858888f193505050501561024a5761deadff5b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461027057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116151561029257600080fd5b60028054600380547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff808516919091179092559084169116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461039a57600080fd5b60055460ff1615156103ab57600080fd5b8160045410156103ba57600080fd5b600482905560025460405173ffffffffffffffffffffffffffffffffffffffff90911690303184900380156108fc02916000818181858888f193505050501580156104025750805b1561040c57600080fd5b5050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461043457600080fd5b60055460ff16151561044557600080fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405161dead906103e83031848203020480156108fc02916000818181858888f19350505050151561049e57600080fd5b6040517fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1390600090a16104cf6101fa565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104f657600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790555600a165627a7a723058209703dd8cf4f5474216d07ea629510ee6a100df29c1f59be43452a35823e635760029a165627a7a723058204635cfa64e8a1c8e3594fbc502c65ee2d79a6c9d09b58f4610bdb5f098059a3e0029",
  "deployedBytecode": "0x6080604052600436106101325763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630230a07c811461013757806313c89a8f1461015157806315f733311461017b57806322ec1244146101d45780632525f5c11461020b578063267b69221461023c5780633f15457f146102a957806347872b42146102e75780635ddae283146103055780635e4317091461031d57806361d585da1461034e57806379ce9fac1461038a57806393503337146103bb578063983b94fb146103ea5780639c67f06f14610402578063ae1a0b0c14610417578063ce92dced14610445578063de10f04b14610450578063e27fe50f146104a5578063ea9e107a146104fa578063ede8acdb1461052e578063faff50a814610546578063febefd611461055b575b600080fd5b34801561014357600080fd5b5061014f6004356105a5565b005b34801561015d57600080fd5b5061016960043561089c565b60408051918252519081900360200190f35b34801561018757600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014f9436949293602493928401919081908401838280828437509497506108c09650505050505050565b3480156101e057600080fd5b5061016960043573ffffffffffffffffffffffffffffffffffffffff60243516604435606435610d3f565b34801561021757600080fd5b5061014f73ffffffffffffffffffffffffffffffffffffffff60043516602435610d90565b34801561024857600080fd5b5061025460043561101b565b6040518086600581111561026457fe5b60ff16815273ffffffffffffffffffffffffffffffffffffffff90951660208601525060408085019390935260608401919091526080830152519081900360a0019150f35b3480156102b557600080fd5b506102be611074565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102f357600080fd5b5061014f600435602435604435611090565b34801561031157600080fd5b5061014f6004356117e3565b34801561032957600080fd5b506102be73ffffffffffffffffffffffffffffffffffffffff60043516602435611b0d565b34801561035a57600080fd5b50610366600435611b40565b6040518082600581111561037657fe5b60ff16815260200191505060405180910390f35b34801561039657600080fd5b5061014f60043573ffffffffffffffffffffffffffffffffffffffff60243516611bd2565b3480156103c757600080fd5b506103d6600435602435611d82565b604080519115158252519081900360200190f35b3480156103f657600080fd5b5061014f600435611d98565b34801561040e57600080fd5b506101696120fa565b34801561042357600080fd5b5061042c612100565b6040805163ffffffff9092168252519081900360200190f35b61014f600435612107565b34801561045c57600080fd5b506040805160206004803580820135838102808601850190965280855261014f953695939460249493850192918291850190849080828437509497506122339650505050505050565b3480156104b157600080fd5b506040805160206004803580820135838102808601850190965280855261014f953695939460249493850192918291850190849080828437509497506122909650505050505050565b34801561050657600080fd5b5061014f60043573ffffffffffffffffffffffffffffffffffffffff602435166044356122c8565b34801561053a57600080fd5b5061014f6004356122cd565b34801561055257600080fd5b50610169612456565b6040805160206004803580820135838102808601850190965280855261014f95369593946024949385019291829185019084908082843750949750509335945061245c9350505050565b6000808260026105b482611b40565b60058111156105bf57fe5b141580610685575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b15801561063f57600080fd5b505af1158015610653573d6000803e3d6000fd5b505050506040513d602081101561066957600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b1561068f57600080fd5b60008481526002602052604090208054600182015491945073ffffffffffffffffffffffffffffffffffffffff1692506301e13380014210801561078d575060008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309373ffffffffffffffffffffffffffffffffffffffff909316926302571be392602480820193602093909283900390910190829087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b505050506040513d602081101561077357600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16145b1561079757600080fd5b600060028401819055600384015582547fffffffffffffffffffffffff00000000000000000000000000000000000000001683556107d48461246e565b8173ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561084557600080fd5b505af1158015610859573d6000803e3d6000fd5b505050600284015460408051918252518692507f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e169181900360200190a250505050565b6004547001000000000000000000000000000000006249d400818404020401919050565b600080826040518082805190602001908083835b6020831061091157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108d4565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052604051920182900390912092506002915081905061096a83611b40565b600581111561097557fe5b1461097f57600080fd5b600661098a866126fc565b111561099557600080fd5b846040518082805190602001908083835b602083106109e357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109a6565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900390912060008181526002909252929020919750909550610a4b925086915061246e9050565b825473ffffffffffffffffffffffffffffffffffffffff1615610c2a57610a7d8360020154662386f26fc100006127a6565b60028481018290558454604080517fb0c80972000000000000000000000000000000000000000000000000000000008152929093046004830152600060248301819052925173ffffffffffffffffffffffffffffffffffffffff9091169263b0c80972926044808201939182900301818387803b158015610afd57600080fd5b505af1158015610b11573d6000803e3d6000fd5b50508454604080517f13af4035000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff90921693506313af4035925060248082019260009290919082900301818387803b158015610b8657600080fd5b505af1158015610b9a573d6000803e3d6000fd5b50508454604080517fbbe427710000000000000000000000000000000000000000000000000000000081526103e86004820152905173ffffffffffffffffffffffffffffffffffffffff909216935063bbe42771925060248082019260009290919082900301818387803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050505b846040518082805190602001908083835b60208310610c7857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c3b565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040805192909401829003822060028a015460018b01549084529183019190915283519095508994507f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad93918190039091019150a35050600060028201819055600382015580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555050565b6040805194855273ffffffffffffffffffffffffffffffffffffffff939093166c01000000000000000000000000026020850152603484019190915260548301525160749181900391909101902090565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260036020908152604080832085845290915290205416801580610e6e57506206978063ffffffff168173ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610e3957600080fd5b505af1158015610e4d573d6000803e3d6000fd5b505050506040513d6020811015610e6357600080fd5b505101621275000142105b15610e7857600080fd5b604080517f13af4035000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff8316916313af403591602480830192600092919082900301818387803b158015610ee557600080fd5b505af1158015610ef9573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff83166000818152600360209081526040808320868452825280832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690558051928352600591830191909152805185927f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e792908290030190a3505050565b6000818152600260205260408120819081908190819061103a87611b40565b815460018301546002840154600390940154929a73ffffffffffffffffffffffffffffffffffffffff909216995097509195509350915050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806110a589338a8a610d3f565b33600090815260036020908152604080832084845290915290205490965073ffffffffffffffffffffffffffffffffffffffff1694508415156110e757600080fd5b336000908152600360209081526040808320898452825280832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690558b83526002825280832081517f3fa4f24500000000000000000000000000000000000000000000000000000000815291519097506111ce938c9373ffffffffffffffffffffffffffffffffffffffff8b1693633fa4f2459360048083019491928390030190829087803b15801561119d57600080fd5b505af11580156111b1573d6000803e3d6000fd5b505050506040513d60208110156111c757600080fd5b50516127be565b604080517fb0c809720000000000000000000000000000000000000000000000000000000081526004810183905260016024820152905191945073ffffffffffffffffffffffffffffffffffffffff87169163b0c809729160448082019260009290919082900301818387803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b5050505061126889611b40565b9150600282600581111561127857fe5b141561134a578473ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156112ee57600080fd5b505af1158015611302573d6000803e3d6000fd5b5050604080518681526001602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a36117d8565b600482600581111561135857fe5b1461136257600080fd5b662386f26fc1000083108061141457506202a30063ffffffff168460010154038573ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b505050506040513d602081101561141057600080fd5b5051115b156114e6578473ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561148a57600080fd5b505af115801561149e573d6000803e3d6000fd5b5050604080518681526000602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a36117d8565b836003015483111561163157835473ffffffffffffffffffffffffffffffffffffffff161561159d57508254604080517fbbe427710000000000000000000000000000000000000000000000000000000081526103e36004820152905173ffffffffffffffffffffffffffffffffffffffff90921691829163bbe4277191602480830192600092919082900301818387803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b505050505b6003840180546002808701919091559084905584547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716178555604080518581526020810192909252805133928c927f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e792918290030190a36117d8565b836002015483111561170f5760028401839055604080517fbbe427710000000000000000000000000000000000000000000000000000000081526103e36004820152905173ffffffffffffffffffffffffffffffffffffffff87169163bbe4277191602480830192600092919082900301818387803b1580156116b357600080fd5b505af11580156116c7573d6000803e3d6000fd5b5050604080518681526003602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a36117d8565b8473ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561178057600080fd5b505af1158015611794573d6000803e3d6000fd5b5050604080518681526004602082015281513394508d93507f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7929181900390910190a35b505050505050505050565b6000808260026117f282611b40565b60058111156117fd57fe5b1415806118c3575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b15801561187d57600080fd5b505af1158015611891573d6000803e3d6000fd5b505050506040513d60208110156118a757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b156118cd57600080fd5b60008054600154604080517f02571be300000000000000000000000000000000000000000000000000000000815260048101929092525173ffffffffffffffffffffffffffffffffffffffff909216926302571be3926024808401936020939083900390910190829087803b15801561194557600080fd5b505af1158015611959573d6000803e3d6000fd5b505050506040513d602081101561196f57600080fd5b5051925073ffffffffffffffffffffffffffffffffffffffff831630141561199657600080fd5b600084815260026020526040808220805482517ffaab9d3900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152935192965092169263faab9d39926024808201939182900301818387803b158015611a1357600080fd5b505af1158015611a27573d6000803e3d6000fd5b505083546001850154604080517fea9e107a000000000000000000000000000000000000000000000000000000008152600481018a905273ffffffffffffffffffffffffffffffffffffffff9384166024820152604481019290925251918716935063ea9e107a925060648082019260009290919082900301818387803b158015611ab157600080fd5b505af1158015611ac5573d6000803e3d6000fd5b505083547fffffffffffffffffffffffff0000000000000000000000000000000000000000168455505060006001830181905560028301819055600390920191909155505050565b600360209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6000818152600260205260408120611b588342611d82565b1515611b675760059150611bcc565b8060010154421015611bb35760018101547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5d0001421015611baa5760019150611bcc565b60049150611bcc565b60038101541515611bc75760009150611bcc565b600291505b50919050565b6000826002611be082611b40565b6005811115611beb57fe5b141580611cb1575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b158015611c6b57600080fd5b505af1158015611c7f573d6000803e3d6000fd5b505050506040513d6020811015611c9557600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b15611cbb57600080fd5b73ffffffffffffffffffffffffffffffffffffffff83161515611cdd57600080fd5b600084815260026020526040808220805482517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015293519296509216926313af4035926024808201939182900301818387803b158015611d5a57600080fd5b505af1158015611d6e573d6000803e3d6000fd5b50505050611d7c84846127cf565b50505050565b6000611d8d8361089c565b821190505b92915050565b6000816002611da682611b40565b6005811115611db157fe5b141580611e77575060008181526002602090815260408083205481517f8da5cb5b000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911693638da5cb5b93600480850194919392918390030190829087803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b505050506040513d6020811015611e5b57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff163314155b15611e8157600080fd5b600083815260026020819052604090912090810154909250611eaa90662386f26fc100006127a6565b600283018190558254604080517fb0c809720000000000000000000000000000000000000000000000000000000081526004810193909352600160248401525173ffffffffffffffffffffffffffffffffffffffff9091169163b0c8097291604480830192600092919082900301818387803b158015611f2957600080fd5b505af1158015611f3d573d6000803e3d6000fd5b50505050611ffe838360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611fcd57600080fd5b505af1158015611fe1573d6000803e3d6000fd5b505050506040513d6020811015611ff757600080fd5b50516127cf565b8154604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921691638da5cb5b916004808201926020929091908290030181600087803b15801561206a57600080fd5b505af115801561207e573d6000803e3d6000fd5b505050506040513d602081101561209457600080fd5b505160028301546001840154604080519283526020830191909152805173ffffffffffffffffffffffffffffffffffffffff9093169286927f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67092908290030190a3505050565b60045481565b6249d40081565b33600090815260036020908152604080832084845290915281205473ffffffffffffffffffffffffffffffffffffffff1681101561214457600080fd5b662386f26fc1000034101561215857600080fd5b3433612162612b31565b73ffffffffffffffffffffffffffffffffffffffff9091168152604051908190036020019082f08015801561219b573d6000803e3d6000fd5b5033600081815260036020908152604080832088845282529182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790558151348152915193955091935085927fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29929181900390910190a35050565b8051151561224057600080fd5b600261226682600184510381518110151561225757fe5b90602001906020020151611b40565b600581111561227157fe5b141561227c57600080fd5b61228d600182510382600154612912565b50565b60005b81518110156122c4576122bc82828151811015156122ad57fe5b906020019060200201516122cd565b600101612293565b5050565b505050565b6000806004544210806122e75750600454630784ce000142115b806123ad575060008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309373ffffffffffffffffffffffffffffffffffffffff909316926302571be392602480820193602093909283900390910190829087803b15801561236857600080fd5b505af115801561237c573d6000803e3d6000fd5b505050506040513d602081101561239257600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614155b156123b757600080fd5b6123c083611b40565b915060018260058111156123d057fe5b14156123db576122c8565b60008260058111156123e957fe5b146123f357600080fd5b50600082815260026020818152604080842042620697800160018201819055938101859055600381019490945580519283525185927f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000392908290030190a2505050565b60015481565b61246582612290565b6122c481612107565b60008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309273ffffffffffffffffffffffffffffffffffffffff16916302571be391602480830192602092919082900301818887803b1580156124e457600080fd5b505af11580156124f8573d6000803e3d6000fd5b505050506040513d602081101561250e57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156122c45760008054600154604080517f06ab59230000000000000000000000000000000000000000000000000000000081526004810192909252602482018690523060448301525173ffffffffffffffffffffffffffffffffffffffff909216926306ab59239260648084019382900301818387803b1580156125aa57600080fd5b505af11580156125be573d6000803e3d6000fd5b5050600154604080519182526020820186905280519182900381018220600080547f1896f70a0000000000000000000000000000000000000000000000000000000085526004850183905260248501829052925191965073ffffffffffffffffffffffffffffffffffffffff9092169450631896f70a935060448084019382900301818387803b15801561265157600080fd5b505af1158015612665573d6000803e3d6000fd5b505060008054604080517f5b0fc9c30000000000000000000000000000000000000000000000000000000081526004810187905260248101849052905173ffffffffffffffffffffffffffffffffffffffff9092169450635b0fc9c39350604480820193929182900301818387803b1580156126e057600080fd5b505af11580156126f4573d6000803e3d6000fd5b505050505050565b805160009060018381019184010182805b8284101561279d5750825160ff16608081101561272f57600184019350612792565b60e08160ff16101561274657600284019350612792565b60f08160ff16101561275d57600384019350612792565b60f88160ff16101561277457600484019350612792565b60fc8160ff16101561278b57600584019350612792565b6006840193505b60019091019061270d565b50949350505050565b6000818311156127b7575081611d92565b5080611d92565b6000818310156127b7575081611d92565b60008054600154604080517f02571be3000000000000000000000000000000000000000000000000000000008152600481019290925251309373ffffffffffffffffffffffffffffffffffffffff909316926302571be392602480820193602093909283900390910190829087803b15801561284a57600080fd5b505af115801561285e573d6000803e3d6000fd5b505050506040513d602081101561287457600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156122c45760008054600154604080517f06ab592300000000000000000000000000000000000000000000000000000000815260048101929092526024820186905273ffffffffffffffffffffffffffffffffffffffff858116604484015290519216926306ab59239260648084019382900301818387803b1580156126e057600080fd5b600054825173ffffffffffffffffffffffffffffffffffffffff909116906306ab592390839085908790811061294457fe5b60209081029091010151604080517c010000000000000000000000000000000000000000000000000000000063ffffffff86160281526004810193909352602483019190915230604483015251606480830192600092919082900301818387803b1580156129b157600080fd5b505af11580156129c5573d6000803e3d6000fd5b505050508082848151811015156129d857fe5b6020908102909101810151604080519384529183015280519182900301902090506000831115612a1057612a10600184038383612912565b60008054604080517f1896f70a0000000000000000000000000000000000000000000000000000000081526004810185905260248101849052905173ffffffffffffffffffffffffffffffffffffffff90921692631896f70a9260448084019382900301818387803b158015612a8557600080fd5b505af1158015612a99573d6000803e3d6000fd5b505060008054604080517f5b0fc9c30000000000000000000000000000000000000000000000000000000081526004810187905260248101849052905173ffffffffffffffffffffffffffffffffffffffff9092169450635b0fc9c39350604480820193929182900301818387803b158015612b1457600080fd5b505af1158015612b28573d6000803e3d6000fd5b50505050505050565b6040516105cd80612b4283390190560060806040526040516020806105cd833981016040525160028054600160a060020a03909216600160a060020a031992831617905560008054909116331790554260019081556005805460ff1916909117905534600455610569806100646000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b3441081146100a85780630b5ab3d5146100cf57806313af4035146100e65780632b20e397146101145780633fa4f24514610152578063674f220f146101675780638da5cb5b1461017c578063b0c8097214610191578063bbe42771146101ae578063faab9d39146101c6575b600080fd5b3480156100b457600080fd5b506100bd6101f4565b60408051918252519081900360200190f35b3480156100db57600080fd5b506100e46101fa565b005b3480156100f257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff6004351661024c565b34801561012057600080fd5b5061012961031c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561015e57600080fd5b506100bd610338565b34801561017357600080fd5b5061012961033e565b34801561018857600080fd5b5061012961035a565b34801561019d57600080fd5b506100e46004356024351515610376565b3480156101ba57600080fd5b506100e4600435610410565b3480156101d257600080fd5b506100e473ffffffffffffffffffffffffffffffffffffffff600435166104d2565b60015481565b60055460ff161561020a57600080fd5b60025460405173ffffffffffffffffffffffffffffffffffffffff90911690303180156108fc02916000818181858888f193505050501561024a5761deadff5b565b60005473ffffffffffffffffffffffffffffffffffffffff16331461027057600080fd5b73ffffffffffffffffffffffffffffffffffffffff8116151561029257600080fd5b60028054600380547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff808516919091179092559084169116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff16331461039a57600080fd5b60055460ff1615156103ab57600080fd5b8160045410156103ba57600080fd5b600482905560025460405173ffffffffffffffffffffffffffffffffffffffff90911690303184900380156108fc02916000818181858888f193505050501580156104025750805b1561040c57600080fd5b5050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461043457600080fd5b60055460ff16151561044557600080fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560405161dead906103e83031848203020480156108fc02916000818181858888f19350505050151561049e57600080fd5b6040517fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1390600090a16104cf6101fa565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104f657600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790555600a165627a7a723058209703dd8cf4f5474216d07ea629510ee6a100df29c1f59be43452a35823e635760029a165627a7a723058204635cfa64e8a1c8e3594fbc502c65ee2d79a6c9d09b58f4610bdb5f098059a3e0029",
  "sourceMap": "2898:18238:11:-;;;5690:191;8:9:-1;5:2;;;30:1;27;20:12;5:2;5690:191:11;;;;;;;;;;;;;;;;;;;;;;;;;5773:3;:10;;-1:-1:-1;;;;;;5773:10:11;-1:-1:-1;;;;;5773:10:11;;;;;-1:-1:-1;5793:20:11;;;5841:14;;:33;;5871:3;5841:33;;;5858:10;5841:33;5823:15;:51;-1:-1:-1;;;2898:18238:11;;;;;;",
  "deployedSourceMap": "2898:18238:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16631:421;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16631:421:11;;;;;;;8311:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8311:213:11;;;;;;;;;;;;;;;;;;;;;17437:720;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17437:720:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17437:720:11;;-1:-1:-1;17437:720:11;;-1:-1:-1;;;;;;;17437:720:11;10478:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10478:162:11;;;;;;;;;;;;;14600:832;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14600:832:11;;;;;;;;;5265:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5265:207:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5265:207:11;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5265:207:11;2923:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2923:22:11;;;;;;;;;;;;;;;;;;;;;;;12587:1898;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12587:1898:11;;;;;;;;;20028:546;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20028:546:11;;;;;3022:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3022:63:11;;;;;;;;;4250:580;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4250:580:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16202:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16202:225:11;;;;;;;;;7927:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7927:140:11;;;;;;;;;;;;;;;;;;;;;;;;;15592:401;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15592:401:11;;;;;3359:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3359:27:11;;;;3266:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3266:45:11;;;;;;;;;;;;;;;;;;;;;;;11496:378;;;;;;18776:217;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18776:217:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18776:217:11;;-1:-1:-1;18776:217:11;;-1:-1:-1;;;;;;;18776:217:11;10038:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10038:151:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10038:151:11;;-1:-1:-1;10038:151:11;;-1:-1:-1;;;;;;;10038:151:11;20970:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20970:163:11;;;;;;;;;;;9038:406;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9038:406:11;;;;;2951:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2951:23:11;;;;12216:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12216:139:11;;-1:-1:-1;;12216:139:11;;;-1:-1:-1;12216:139:11;;-1:-1:-1;;;;12216:139:11;16631:421;16694:7;;16677:5;5012:10;4996:12;5002:5;4996;:12::i;:::-;:26;;;;;;;;;;:72;;;-1:-1:-1;5040:15:11;;;;:8;:15;;;;;;;;:20;:28;;;;;;;:20;;;;;:26;;:28;;;;;:15;;:28;;;;;;;;;:20;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5040:28:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5040:28:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5040:28:11;5026:42;;:10;:42;;4996:72;4992:83;;;5070:5;;;4992:83;16704:15;;;;:8;:15;;;;;16749:6;;;16775:18;;;16704:15;;-1:-1:-1;16749:6:11;;;-1:-1:-1;16796:7:11;16775:28;16769:3;:34;:74;;;;-1:-1:-1;16807:3:11;;;;16817:8;16807:19;;;;;;;;;;;;;;16838:4;;16807:36;:3;;;;:9;;:19;;;;;;;;;;;;;;;;;;:3;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;16807:19:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16807:19:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16807:19:11;:36;;;16769:74;16765:85;;;16845:5;;;16765:85;16871:1;16861:7;;;:11;;;16882:12;;;:16;16908;;;;;;16935:26;16955:5;16935:19;:26::i;:::-;16971:12;:22;;;16994:4;16971:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16971:28:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;17029:7:11;;;;17009:28;;;;;;;17022:5;;-1:-1:-1;17009:28:11;;;;;;;;;16631:421;;;;:::o;8311:213::-;8401:15;;8437:18;3304:7;8437:18;;;8421:35;8420:44;8401:64;8311:213;;;:::o;17437:720::-;17577:12;17621:7;17495:12;17490:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;;;;365:33;;17490:18:11;;;;;;;;;;;-1:-1:-1;17510:10:11;;-1:-1:-1;17510:10:11;;-1:-1:-1;4895:12:11;4901:5;4895;:12::i;:::-;:22;;;;;;;;;4891:33;;4919:5;;;4891:33;17559:1;17536:20;17543:12;17536:6;:20::i;:::-;:24;17532:35;;;17562:5;;;17532:35;17597:12;17592:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;17592:18:11;;;;;;;;;;;;;-1:-1:-1;17631:14:11;;;:8;:14;;;;;;17592:18;;-1:-1:-1;17631:14:11;;-1:-1:-1;17656:25:11;;-1:-1:-1;17592:18:11;;-1:-1:-1;17656:19:11;;-1:-1:-1;17656:25:11:i;:::-;17704:6;;;;17696:20;17692:310;;17843:22;17847:1;:7;;;3343:10;17843:3;:22::i;:::-;17833:7;;;;:32;;;17879:6;;:35;;;;;;17897:9;;;;17879:35;;;;-1:-1:-1;17879:35:11;;;;;;;;:6;;;;;:17;;:35;;;;;;;;;;;-1:-1:-1;17879:6:11;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;17879:35:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17928:6:11;;:27;;;;;;17944:10;17928:27;;;;;;:6;;;;;-1:-1:-1;17928:15:11;;-1:-1:-1;17928:27:11;;;;;:6;;:27;;;;;;;;:6;;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;17928:27:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17969:6:11;;:22;;;;;;17986:4;17969:22;;;;;;:6;;;;;-1:-1:-1;17969:16:11;;-1:-1:-1;17969:22:11;;;;;:6;;:22;;;;;;;;:6;;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;17969:22:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17969:22:11;;;;17692:310;18034:12;18012:64;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;18012:64:11;;;;;;;;;;;;18048:7;;;;274:1:-1;18057:18:11;;;18012:64;;;;;;;;;;;;;;-1:-1:-1;18028:4:11;;-1:-1:-1;18012:64:11;;;;;;;;;;-1:-1:-1;18012:64:11;-1:-1:-1;;18097:1:11;18087:7;;;:11;;;18108:12;;;:16;18134;;;;;;-1:-1:-1;;17437:720:11:o;10478:162::-;10603:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10478:162::o;14600:832::-;14670:18;;;;14659:8;14670:18;;;:10;:18;;;;;;;;:24;;;;;;;;;;15118:17;;;:88;;;3209:6;15157:39;;:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15157:18:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15157:18:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15157:18:11;:39;15199:7;15157:49;15151:3;:55;15118:88;15114:99;;;15208:5;;;15114:99;15290:24;;;;;;15303:10;15290:24;;;;;;:12;;;;;;:24;;;;;-1:-1:-1;;15290:24:11;;;;;;;-1:-1:-1;15290:12:11;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;15290:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15290:24:11;;;;15324:3;:13;;;15338:1;15324:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15324:16:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;15350:18:11;;;15382:1;15350:18;;;:10;:18;;;;;;;;:24;;;;;;;;:34;;;;;;15394:31;;;;;15423:1;15394:31;;;;;;;;;15350:24;;15394:31;;;;;;;;;14600:832;;;:::o;5265:207::-;5315:4;5368:15;;;:8;:15;;;;;5315:4;;;;;;;;5401:12;5377:5;5401;:12::i;:::-;5415:6;;;5423:18;;;5443:7;;;;5452:12;;;;;5393:72;;5415:6;;;;;-1:-1:-1;5423:18:11;-1:-1:-1;5443:7:11;;-1:-1:-1;5452:12:11;-1:-1:-1;5265:207:11;-1:-1:-1;;5265:207:11:o;2923:22::-;;;;;;:::o;12587:1898::-;12659:12;12724:8;12860:7;12895:10;12980:16;13713:19;12674:40;12681:5;12688:10;12700:6;12708:5;12674:6;:40::i;:::-;12746:10;12735:22;;;;:10;:22;;;;;;;;:28;;;;;;;;;12659:55;;-1:-1:-1;12735:22:11;:28;;-1:-1:-1;12777:17:11;;12773:28;;;12796:5;;;12773:28;12823:10;12848:1;12812:22;;;:10;:22;;;;;;;;:28;;;;;;;;:38;;;;;;12870:15;;;:8;:15;;;;;12920:11;;;;;;;12870:15;;-1:-1:-1;12908:24:11;;12912:6;;12812:22;12920:9;;;;;:11;;;;;;;;;;;;;;:9;:11;;;5:2:-1;;;;30:1;27;20:12;5:2;12920:11:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12920:11:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12920:11:11;12908:3;:24::i;:::-;12942:27;;;;;;;;;;;;12964:4;12942:27;;;;;;12895:37;;-1:-1:-1;12942:14:11;;;;;;:27;;;;;-1:-1:-1;;12942:27:11;;;;;;;;-1:-1:-1;12942:14:11;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;12942:27:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12942:27:11;;;;12999:12;13005:5;12999;:12::i;:::-;12980:31;-1:-1:-1;13041:10:11;13025:12;:26;;;;;;;;;13021:1458;;;13132:3;:13;;;13146:1;13132:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13132:16:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13162:40:11;;;;;;13200:1;13162:40;;;;;;13181:10;;-1:-1:-1;13174:5:11;;-1:-1:-1;13162:40:11;;;;;;;;;;;13021:1458;;;13239:11;13223:12;:27;;;;;;;;;13219:1260;;13295:5;;;13219:1260;3343:10;13321:5;:16;:74;;;;3252:8;13362:33;;:1;:18;;;:33;13341:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13341:18:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13341:18:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13341:18:11;:54;13321:74;13317:1162;;;13464:3;:13;;;13478:3;13464:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13464:18:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13496:40:11;;;;;;;;;;;;;13515:10;;-1:-1:-1;13508:5:11;;-1:-1:-1;13496:40:11;;;;;;;;;;;13317:1162;;;13565:1;:12;;;13557:5;:20;13553:926;;;13681:6;;;;13673:20;13669:134;;-1:-1:-1;13735:6:11;;13759:29;;;;;;13784:3;13759:29;;;;;;13735:6;;;;;;;13759:24;;:29;;;;;13735:6;;13759:29;;;;;;;13735:6;;13759:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13759:29:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13759:29:11;;;;13669:134;13950:12;;;;;13940:7;;;;:22;;;;14018:20;;;;14052:12;;;;;;;;;;14078:40;;;;;;;;;;;;;;;14097:10;;14090:5;;14078:40;;;;;;;;;13553:926;;;14147:1;:7;;;14139:5;:15;14135:344;;;14222:7;;;:15;;;14251:18;;;;;;14265:3;14251:18;;;;;;:13;;;;;;:18;;;;;-1:-1:-1;;14251:18:11;;;;;;;-1:-1:-1;14251:13:11;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;14251:18:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14283:40:11;;;;;;14321:1;14283:40;;;;;;14302:10;;-1:-1:-1;14295:5:11;;-1:-1:-1;14283:40:11;;;;;;;;;;;14135:344;;;14396:3;:13;;;14410:3;14396:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14396:18:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14428:40:11;;;;;;14466:1;14428:40;;;;;;14447:10;;-1:-1:-1;14440:5:11;;-1:-1:-1;14428:40:11;;;;;;;;;;;14135:344;12587:1898;;;;;;;;;:::o;20028:546::-;20098:13;;20081:5;5012:10;4996:12;5002:5;4996;:12::i;:::-;:26;;;;;;;;;;:72;;;-1:-1:-1;5040:15:11;;;;:8;:15;;;;;;;;:20;:28;;;;;;;:20;;;;;:26;;:28;;;;;:15;;:28;;;;;;;;;:20;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5040:28:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5040:28:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5040:28:11;5026:42;;:10;:42;;4996:72;4992:83;;;5070:5;;;4992:83;20114:3;;;;20124:8;20114:19;;;;;;;;;;;;;;:3;;;;;:9;;:19;;;;;;;;;;;;;;;;;:3;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;20114:19:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20114:19:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20114:19:11;;-1:-1:-1;20147:26:11;;;20168:4;20147:26;20143:37;;;20175:5;;;20143:37;20229:15;;;;:8;:15;;;;;;20254:6;;:30;;;;;:6;:30;;;;;;;;;20229:15;;-1:-1:-1;20254:6:11;;;:19;;:30;;;;;;;;;;;20229:15;20254:6;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;20254:30:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;20404:6:11;;;20412:18;;;20352:79;;;;;;;;;;;;:44;20404:6;;;20352:79;;;;;;;;;;;;:44;;;;-1:-1:-1;20352:44:11;;-1:-1:-1;20352:79:11;;;;;20404:6;;20352:79;;;;;;;;20404:6;20352:44;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;20352:79:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;20472:16:11;;;;;;-1:-1:-1;;20486:1:11;20472:16;20498:18;;:22;;;20530:7;;;:11;;;20551:12;;;;:16;;;;-1:-1:-1;;;20028:546:11:o;3022:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4250:580::-;4298:4;4326:15;;;:8;:15;;;;;4365:21;4335:5;4382:3;4365:9;:21::i;:::-;4364:22;4360:464;;;4409:20;4402:27;;;;4360:464;4456:5;:22;;;4450:3;:28;4446:378;;;4504:22;;;;:37;;4498:3;:43;4494:158;;;4568:12;4561:19;;;;4494:158;4626:11;4619:18;;;;4446:378;4686:16;;;;:21;4682:132;;;4734:9;4727:16;;;;4682:132;4789:10;4782:17;;4682:132;4250:580;;;;:::o;16202:225::-;16315:7;16263:5;5012:10;4996:12;5002:5;4996;:12::i;:::-;:26;;;;;;;;;;:72;;;-1:-1:-1;5040:15:11;;;;:8;:15;;;;;;;;:20;:28;;;;;;;:20;;;;;:26;;:28;;;;;:15;;:28;;;;;;;;;:20;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5040:28:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5040:28:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5040:28:11;5026:42;;:10;:42;;4996:72;4992:83;;;5070:5;;;4992:83;16284:13;;;;16280:24;;;16299:5;;;16280:24;16325:15;;;;:8;:15;;;;;;16350:6;;:25;;;;;:6;:25;;;;;;;;;16325:15;;-1:-1:-1;16350:6:11;;;:15;;:25;;;;;;;;;;;16325:15;16350:6;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;16350:25:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16350:25:11;;;;16385:35;16404:5;16411:8;16385:18;:35::i;:::-;16202:225;;;;:::o;7927:140::-;7996:12;8039:21;8054:5;8039:14;:21::i;:::-;8026:10;:34;8019:41;;7927:140;;;;;:::o;15592:401::-;15659:7;15642:5;5012:10;4996:12;5002:5;4996;:12::i;:::-;:26;;;;;;;;;;:72;;;-1:-1:-1;5040:15:11;;;;:8;:15;;;;;;;;:20;:28;;;;;;;:20;;;;;:26;;:28;;;;;:15;;:28;;;;;;;;;:20;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;5040:28:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5040:28:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5040:28:11;5026:42;;:10;:42;;4996:72;4992:83;;;5070:5;;;4992:83;15669:15;;;;:8;:15;;;;;;;;15798:7;;;;15669:15;;-1:-1:-1;15794:22:11;;3343:10;15794:3;:22::i;:::-;15783:7;;;:33;;;15826:6;;:32;;;;;;;;;;;;;:6;:32;;;;;:6;;;;;:17;;:32;;;;;:6;;:32;;;;;;;:6;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;15826:32:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15826:32:11;;;;15869:41;15888:5;15895:1;:6;;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15895:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15895:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15895:14:11;15869:18;:41::i;:::-;15942:6;;:14;;;;;;;;:6;;;;;:12;;:14;;;;;;;;;;;;;;;:6;;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;15942:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15942:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15942:14:11;15958:7;;;;15967:18;;;;15920:66;;;;;;15942:14;15920:66;;;;;;;;;;;;;15935:5;;15920:66;;;;;;;;;15592:401;;;:::o;3359:27::-;;;;:::o;3266:45::-;3304:7;3266:45;:::o;11496:378::-;11572:10;11712:11;11561:22;;;:10;:22;;;;;;;;:33;;;;;;;;;:22;:33;11553:46;-1:-1:-1;11549:57:11;;;11601:5;;;11549:57;3343:10;11620:9;:20;11616:31;;;11642:5;;;11616:31;11743:9;11754:10;11726:39;;:::i;:::-;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11786:10:11;11775:22;;;;:10;:22;;;;;;;;:33;;;;;;;;;:42;;;;:22;:42;;;;;11827:40;;11857:9;11827:40;;;;11775:42;;-1:-1:-1;11786:10:11;;-1:-1:-1;11775:33:11;;11827:40;;;;;;;;;;;11496:378;;:::o;18776:217::-;18827:13;;:18;18823:29;;;18847:5;;;18823:29;18902:10;18866:32;18872:6;18895:1;18879:6;:13;:17;18872:25;;;;;;;;;;;;;;;;;;18866:5;:32::i;:::-;:46;;;;;;;;;18862:57;;;18914:5;;;18862:57;18930:56;18966:1;18950:6;:13;:17;18969:6;18977:8;;18930:19;:56::i;:::-;18776:217;:::o;10038:151::-;10096:6;10091:92;10112:7;:14;10108:1;:18;10091:92;;;10148:24;10161:7;10169:1;10161:10;;;;;;;;;;;;;;;;;;10148:12;:24::i;:::-;10128:4;;10091:92;;;10038:151;;:::o;20970:163::-;;;;:::o;9038:406::-;9100:8;9214:16;5143:15;;5137:3;:21;:57;;;;5169:15;;5187:7;5169:25;5163:3;:31;5137:57;:97;;;-1:-1:-1;5198:3:11;;;;5208:8;5198:19;;;;;;;;;;;;;;5229:4;;5198:36;:3;;;;:9;;:19;;;;;;;;;;;;;;;;;;:3;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;5198:19:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5198:19:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5198:19:11;:36;;;;5137:97;5133:108;;;5236:5;;;5133:108;9111:12;9117:5;9111;:12::i;:::-;9100:23;-1:-1:-1;9145:12:11;9137:4;:20;;;;;;;;;9133:33;;;9159:7;;9133:33;9187:9;9179:4;:17;;;;;;;;;9175:28;;9198:5;;;9175:28;-1:-1:-1;9233:15:11;;;;:8;:15;;;;;;;;9288:3;3209:6;9288:24;9258:27;;;:54;;;9322:16;;;:20;;;9352:21;;;:25;;;;9387:50;;;;;;9242:5;;9387:50;;;;;;;;;9038:406;;;:::o;2951:23::-;;;;:::o;12216:139::-;12300:21;12314:6;12300:13;:21::i;:::-;12331:17;12338:9;12331:6;:17::i;18999:306::-;19183:8;19066:3;;;19076:8;19066:19;;;;;;;;;;;;;;19097:4;;19066:36;:3;;:9;;:19;;;;;;;;;;;;;;19183:8;19066:3;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;19066:19:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19066:19:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19066:19:11;:36;;;19062:237;;;19118:3;;;;19138:8;19118:51;;;;;;;;;;;;;;;;;;;19163:4;19118:51;;;;;:3;;;;;:19;;:51;;;;;;;;;;:3;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;19118:51:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19199:8:11;;19194:21;;;;;;;;;;;;;;;;;;;;;;;19229:3;;:24;;;;;;;;;;;;;;;;;19194:21;;-1:-1:-1;19229:3:11;;;;;-1:-1:-1;19229:15:11;;-1:-1:-1;19229:24:11;;;;;;;;;;19194:21;19229:3;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;19229:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19267:3:11;;;:21;;;;;;;;;;;;;;;;;;;;:3;;;;;-1:-1:-1;19267:12:11;;-1:-1:-1;19267:21:11;;;;;:3;:21;;;;;;:3;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;19267:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19267:21:11;;;;18999:306;;:::o;6775:825::-;7061:8;;6828:4;;7035:1;7028:9;;;;7057:18;;;6828:4;;7094:480;7119:3;7113;:9;7094:480;;;-1:-1:-1;7186:10:11;;7198:4;7182:21;7226:4;7222:8;;7218:346;;;7257:1;7250:8;;;;7218:346;;;7287:4;7283:1;:8;;;7279:285;;;7318:1;7311:8;;;;7279:285;;;7348:4;7344:1;:8;;;7340:224;;;7379:1;7372:8;;;;7340:224;;;7409:4;7405:1;:8;;;7401:163;;;7440:1;7433:8;;;;7401:163;;;7470:4;7466:1;:8;;;7462:102;;;7501:1;7494:8;;;;7462:102;;;7548:1;7541:8;;;;7462:102;7124:5;;;;;7094:480;;;-1:-1:-1;7590:3:11;6775:825;-1:-1:-1;;;;6775:825:11:o;6091:149::-;6147:8;6175:1;6171;:5;6167:66;;;-1:-1:-1;6197:1:11;6190:8;;6167:66;-1:-1:-1;6232:1:11;6225:8;;6450:149;6506:8;6534:1;6530;:5;6526:66;;;-1:-1:-1;6556:1:11;6549:8;;8709:197;8794:3;;;;8804:8;8794:19;;;;;;;;;;;;;;8825:4;;8794:36;:3;;;;:9;;:19;;;;;;;;;;;;;;;;;;:3;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;8794:19:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8794:19:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8794:19:11;:36;;;8790:101;;;8844:3;;;;8864:8;8844:47;;;;;;;;;;;;;;;;;;;:3;:47;;;;;;;;;:3;;;:19;;:47;;;;;;;;;;:3;;:47;;;5:2:-1;;;;30:1;27;20:12;19311:484:11;19439:3;;19465:11;;19439:3;;;;;:19;;19459:4;;19465:6;;19472:3;;19465:11;;;;;;;;;;;;;;;19439:53;;;;;;;;;;;;;;;;;;;;;;;;19486:4;19439:53;;;;;;;;;;;;;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;19439:53:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19439:53:11;;;;19514:4;19520:6;19527:3;19520:11;;;;;;;;;;;;;;;;;;;;19509:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19509:23:11;19599:7;;19595:80;;;19622:42;19648:1;19642:3;:7;19651:6;19659:4;19622:19;:42::i;:::-;19733:3;;;:24;;;;;;;;;;;;;;;;;;;;:3;;;;;:15;;:24;;;;;;;;;;:3;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;19733:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19767:3:11;;;:21;;;;;;;;;;;;;;;;;;;;:3;;;;;-1:-1:-1;19767:12:11;;-1:-1:-1;19767:21:11;;;;;:3;:21;;;;;;:3;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;19767:21:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19767:21:11;;;;19311:484;;;:::o;2898:18238::-;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.0;\n\n\n/*\n\nTemporary Hash Registrar\n========================\n\nThis is a simplified version of a hash registrar. It is purporsefully limited:\nnames cannot be six letters or shorter, new auctions will stop after 4 years.\n\nThe plan is to test the basic features and then move to a new contract in at most\n2 years, when some sort of renewal mechanism will be enabled.\n*/\n\n\nimport \"@aragon/os/contracts/lib/ens/AbstractENS.sol\";\n\n\n/**\n * @title Deed to hold ether in exchange for ownership of a node\n * @dev The deed can be controlled only by the registrar and can only send ether back to the owner.\n */\ncontract Deed {\n    address public registrar;\n    address constant burn = 0xdead;\n    uint public creationDate;\n    address public owner;\n    address public previousOwner;\n    uint public value;\n    event OwnerChanged(address newOwner);\n    event DeedClosed();\n    bool active;\n\n    modifier onlyRegistrar {\n        if (msg.sender != registrar) throw;\n        _;\n    }\n\n    modifier onlyActive {\n        if (!active) throw;\n        _;\n    }\n\n    function Deed(address _owner) payable {\n        owner = _owner;\n        registrar = msg.sender;\n        creationDate = now;\n        active = true;\n        value = msg.value;\n    }\n\n    function setOwner(address newOwner) onlyRegistrar {\n        if (newOwner == 0) throw;\n        previousOwner = owner;  // This allows contracts to check who sent them the ownership\n        owner = newOwner;\n        OwnerChanged(newOwner);\n    }\n\n    function setRegistrar(address newRegistrar) onlyRegistrar {\n        registrar = newRegistrar;\n    }\n\n    function setBalance(uint newValue, bool throwOnFailure) onlyRegistrar onlyActive {\n        // Check if it has enough balance to set the value\n        if (value < newValue) throw;\n        value = newValue;\n        // Send the difference to the owner\n        if (!owner.send(this.balance - newValue) && throwOnFailure) throw;\n    }\n\n    /**\n     * @dev Close a deed and refund a specified fraction of the bid value\n     *\n     * @param refundRatio The amount*1/1000 to refund\n     */\n    function closeDeed(uint refundRatio) onlyRegistrar onlyActive {\n        active = false;\n        if (! burn.send(((1000 - refundRatio) * this.balance)/1000)) throw;\n        DeedClosed();\n        destroyDeed();\n    }\n\n    /**\n     * @dev Close a deed and refund a specified fraction of the bid value\n     */\n    function destroyDeed() {\n        if (active) throw;\n        \n        // Instead of selfdestruct(owner), invoke owner fallback function to allow\n        // owner to log an event if desired; but owner should also be aware that\n        // its fallback function can also be invoked by setBalance\n        if (owner.send(this.balance)) {\n            selfdestruct(burn);\n        }\n    }\n}\n\n/**\n * @title Registrar\n * @dev The registrar handles the auction process for each subnode of the node it owns.\n */\ncontract Registrar {\n    AbstractENS public ens;\n    bytes32 public rootNode;\n\n    mapping (bytes32 => entry) _entries;\n    mapping (address => mapping(bytes32 => Deed)) public sealedBids;\n    \n    enum Mode { Open, Auction, Owned, Forbidden, Reveal, NotYetAvailable }\n\n    uint32 constant totalAuctionLength = 5 days;\n    uint32 constant revealPeriod = 48 hours;\n    uint32 public constant launchLength = 8 weeks;\n\n    uint constant minPrice = 0.01 ether;\n    uint public registryStarted;\n\n    event AuctionStarted(bytes32 indexed hash, uint registrationDate);\n    event NewBid(bytes32 indexed hash, address indexed bidder, uint deposit);\n    event BidRevealed(bytes32 indexed hash, address indexed owner, uint value, uint8 status);\n    event HashRegistered(bytes32 indexed hash, address indexed owner, uint value, uint registrationDate);\n    event HashReleased(bytes32 indexed hash, uint value);\n    event HashInvalidated(bytes32 indexed hash, string indexed name, uint value, uint registrationDate);\n\n    struct entry {\n        Deed deed;\n        uint registrationDate;\n        uint value;\n        uint highestBid;\n    }\n\n    // State transitions for names:\n    //   Open -> Auction (startAuction)\n    //   Auction -> Reveal\n    //   Reveal -> Owned\n    //   Reveal -> Open (if nobody bid)\n    //   Owned -> Open (releaseDeed or invalidateName)\n    function state(bytes32 _hash) constant returns (Mode) {\n        var entry = _entries[_hash];\n        \n        if (!isAllowed(_hash, now)) {\n            return Mode.NotYetAvailable;\n        } else if (now < entry.registrationDate) {\n            if (now < entry.registrationDate - revealPeriod) {\n                return Mode.Auction;\n            } else {\n                return Mode.Reveal;\n            }\n        } else {\n            if (entry.highestBid == 0) {\n                return Mode.Open;\n            } else {\n                return Mode.Owned;\n            }\n        }\n    }\n\n    modifier inState(bytes32 _hash, Mode _state) {\n        if (state(_hash) != _state) throw;\n        _;\n    }\n\n    modifier onlyOwner(bytes32 _hash) {\n        if (state(_hash) != Mode.Owned || msg.sender != _entries[_hash].deed.owner()) throw;\n        _;\n    }\n\n    modifier registryOpen() {\n        if (now < registryStarted  || now > registryStarted + 4 years || ens.owner(rootNode) != address(this)) throw;\n        _;\n    }\n\n    function entries(bytes32 _hash) constant returns (Mode, address, uint, uint, uint) {\n        entry h = _entries[_hash];\n        return (state(_hash), h.deed, h.registrationDate, h.value, h.highestBid);\n    }\n\n    /**\n     * @dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     *\n     * @param _ens The address of the ENS\n     * @param _rootNode The hash of the rootnode.\n     */\n    function Registrar(AbstractENS _ens, bytes32 _rootNode, uint _startDate) {\n        ens = _ens;\n        rootNode = _rootNode;\n        registryStarted = _startDate > 0 ? _startDate : now;\n    }\n\n    /**\n     * @dev Returns the maximum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The maximum of two unsigned integers\n     */\n    function max(uint a, uint b) internal constant returns (uint max) {\n        if (a > b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the minimum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The minimum of two unsigned integers\n     */\n    function min(uint a, uint b) internal constant returns (uint min) {\n        if (a < b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the length of a given string\n     *\n     * @param s The string to measure the length of\n     * @return The length of the input string\n     */\n    function strlen(string s) internal constant returns (uint) {\n        s; // Don't warn about unused variables\n        // Starting here means the LSB will be the byte we care about\n        uint ptr;\n        uint end;\n        assembly {\n            ptr := add(s, 1)\n            end := add(mload(s), ptr)\n        }\n        for (uint len = 0; ptr < end; len++) {\n            uint8 b;\n            assembly { b := and(mload(ptr), 0xFF) }\n            if (b < 0x80) {\n                ptr += 1;\n            } else if (b < 0xE0) {\n                ptr += 2;\n            } else if (b < 0xF0) {\n                ptr += 3;\n            } else if (b < 0xF8) {\n                ptr += 4;\n            } else if (b < 0xFC) {\n                ptr += 5;\n            } else {\n                ptr += 6;\n            }\n        }\n        return len;\n    }\n    \n    /** \n     * @dev Determines if a name is available for registration yet\n     * \n     * Each name will be assigned a random date in which its auction \n     * can be started, from 0 to 8 weeks\n     * \n     * @param _hash The hash to start an auction on\n     * @param _timestamp The timestamp to query about\n     */\n    function isAllowed(bytes32 _hash, uint _timestamp) constant returns (bool allowed){\n        return _timestamp > getAllowedTime(_hash);\n    }\n\n    /** \n     * @dev Returns available date for hash\n     * \n     * The available time from the `registryStarted` for a hash is proportional\n     * to its numeric value.\n     * \n     * @param _hash The hash to start an auction on\n     */\n    function getAllowedTime(bytes32 _hash) constant returns (uint timestamp) {\n        return registryStarted + ((launchLength * (uint(_hash) >> 128)) >> 128);\n        // Right shift operator: a >> b == a / 2**b\n    }\n\n    /**\n     * @dev Assign the owner in ENS, if we're still the registrar\n     *\n     * @param _hash hash to change owner\n     * @param _newOwner new owner to transfer to\n     */\n    function trySetSubnodeOwner(bytes32 _hash, address _newOwner) internal {\n        if (ens.owner(rootNode) == address(this))\n            ens.setSubnodeOwner(rootNode, _hash, _newOwner);        \n    }\n\n    /**\n     * @dev Start an auction for an available hash\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function startAuction(bytes32 _hash) registryOpen() {\n        var mode = state(_hash);\n        if (mode == Mode.Auction) return;\n        if (mode != Mode.Open) throw;\n\n        entry newAuction = _entries[_hash];\n        newAuction.registrationDate = now + totalAuctionLength;\n        newAuction.value = 0;\n        newAuction.highestBid = 0;\n        AuctionStarted(_hash, newAuction.registrationDate);\n    }\n\n    /**\n     * @dev Start multiple auctions for better anonymity\n     *\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\n     * Arrays are sent so that someone can open up an auction for X dummy hashes when they\n     * are only really interested in bidding for one. This will increase the cost for an\n     * attacker to simply bid blindly on all new auctions. Dummy auctions that are\n     * open but not bid on are closed after a week.\n     *\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on\n     */\n    function startAuctions(bytes32[] _hashes)  {\n        for (uint i = 0; i < _hashes.length; i ++) {\n            startAuction(_hashes[i]);\n        }\n    }\n\n    /**\n     * @dev Hash the values required for a secret bid\n     *\n     * @param hash The node corresponding to the desired namehash\n     * @param value The bid amount\n     * @param salt A random value to ensure secrecy of the bid\n     * @return The hash of the bid values\n     */\n    function shaBid(bytes32 hash, address owner, uint value, bytes32 salt) constant returns (bytes32 sealedBid) {\n        return sha3(hash, owner, value, salt);\n    }\n\n    /**\n     * @dev Submit a new sealed bid on a desired hash in a blind auction\n     *\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\n     * contains information about the bid, including the bidded hash, the bid amount, and a random\n     * salt. Bids are not tied to any one auction until they are revealed. The value of the bid\n     * itself can be masqueraded by sending more than the value of your actual bid. This is\n     * followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\n     * Since this is an auction, it is expected that most public hashes, like known domains and common dictionary\n     * words, will have multiple bidders pushing the price up.\n     *\n     * @param sealedBid A sealedBid, created by the shaBid function\n     */\n    function newBid(bytes32 sealedBid) payable {\n        if (address(sealedBids[msg.sender][sealedBid]) > 0) throw;\n        if (msg.value < minPrice) throw;\n\n        // Creates a new hash contract with the owner\n        Deed newBid = (new Deed).value(msg.value)(msg.sender);\n        sealedBids[msg.sender][sealedBid] = newBid;\n        NewBid(sealedBid, msg.sender, msg.value);\n    }\n\n    /**\n     * @dev Start a set of auctions and bid on one of them\n     *\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\n     * but all in one transaction.\n     *\n     * @param hashes A list of hashes to start auctions on.\n     * @param sealedBid A sealed bid for one of the auctions.\n     */\n    function startAuctionsAndBid(bytes32[] hashes, bytes32 sealedBid) payable {\n        startAuctions(hashes);\n        newBid(sealedBid);\n    }\n\n    /**\n     * @dev Submit the properties of a bid to reveal them\n     *\n     * @param _hash The node in the sealedBid\n     * @param _value The bid amount in the sealedBid\n     * @param _salt The sale in the sealedBid\n     */\n    function unsealBid(bytes32 _hash, uint _value, bytes32 _salt) {\n        bytes32 seal = shaBid(_hash, msg.sender, _value, _salt);\n        Deed bid = sealedBids[msg.sender][seal];\n        if (address(bid) == 0) throw;\n\n        sealedBids[msg.sender][seal] = Deed(0);\n        entry h = _entries[_hash];\n        uint value = min(_value, bid.value());\n        bid.setBalance(value, true);\n\n        var auctionState = state(_hash);\n        if (auctionState == Mode.Owned) {\n            // Too late! Bidder loses their bid. Gets 0.5% back.\n            bid.closeDeed(5);\n            BidRevealed(_hash, msg.sender, value, 1);\n        } else if (auctionState != Mode.Reveal) {\n            // Invalid phase\n            throw;\n        } else if (value < minPrice || bid.creationDate() > h.registrationDate - revealPeriod) {\n            // Bid too low or too late, refund 99.5%\n            bid.closeDeed(995);\n            BidRevealed(_hash, msg.sender, value, 0);\n        } else if (value > h.highestBid) {\n            // New winner\n            // Cancel the other bid, refund 99.5%\n            if (address(h.deed) != 0) {\n                Deed previousWinner = h.deed;\n                previousWinner.closeDeed(995);\n            }\n\n            // Set new winner\n            // Per the rules of a vickery auction, the value becomes the previous highestBid\n            h.value = h.highestBid;  // will be zero if there's only 1 bidder\n            h.highestBid = value;\n            h.deed = bid;\n            BidRevealed(_hash, msg.sender, value, 2);\n        } else if (value > h.value) {\n            // Not winner, but affects second place\n            h.value = value;\n            bid.closeDeed(995);\n            BidRevealed(_hash, msg.sender, value, 3);\n        } else {\n            // Bid doesn't affect auction\n            bid.closeDeed(995);\n            BidRevealed(_hash, msg.sender, value, 4);\n        }\n    }\n\n    /**\n     * @dev Cancel a bid\n     *\n     * @param seal The value returned by the shaBid function\n     */\n    function cancelBid(address bidder, bytes32 seal) {\n        Deed bid = sealedBids[bidder][seal];\n        \n        // If a sole bidder does not `unsealBid` in time, they have a few more days\n        // where they can call `startAuction` (again) and then `unsealBid` during\n        // the revealPeriod to get back their bid value.\n        // For simplicity, they should call `startAuction` within\n        // 9 days (2 weeks - totalAuctionLength), otherwise their bid will be\n        // cancellable by anyone.\n        if (address(bid) == 0\n            || now < bid.creationDate() + totalAuctionLength + 2 weeks) throw;\n\n        // Send the canceller 0.5% of the bid, and burn the rest.\n        bid.setOwner(msg.sender);\n        bid.closeDeed(5);\n        sealedBids[bidder][seal] = Deed(0);\n        BidRevealed(seal, bidder, 0, 5);\n    }\n\n    /**\n     * @dev Finalize an auction after the registration date has passed\n     *\n     * @param _hash The hash of the name the auction is for\n     */\n    function finalizeAuction(bytes32 _hash) onlyOwner(_hash) {\n        entry h = _entries[_hash];\n        \n        // Handles the case when there's only a single bidder (h.value is zero)\n        h.value =  max(h.value, minPrice);\n        h.deed.setBalance(h.value, true);\n\n        trySetSubnodeOwner(_hash, h.deed.owner());\n        HashRegistered(_hash, h.deed.owner(), h.value, h.registrationDate);\n    }\n\n    /**\n     * @dev The owner of a domain may transfer it to someone else at any time.\n     *\n     * @param _hash The node to transfer\n     * @param newOwner The address to transfer ownership to\n     */\n    function transfer(bytes32 _hash, address newOwner) onlyOwner(_hash) {\n        if (newOwner == 0) throw;\n\n        entry h = _entries[_hash];\n        h.deed.setOwner(newOwner);\n        trySetSubnodeOwner(_hash, newOwner);\n    }\n\n    /**\n     * @dev After some time, or if we're no longer the registrar, the owner can release\n     *      the name and get their ether back.\n     *\n     * @param _hash The node to release\n     */\n    function releaseDeed(bytes32 _hash) onlyOwner(_hash) {\n        entry h = _entries[_hash];\n        Deed deedContract = h.deed;\n        if (now < h.registrationDate + 1 years && ens.owner(rootNode) == address(this)) throw;\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n\n        _tryEraseSingleNode(_hash);\n        deedContract.closeDeed(1000);\n        HashReleased(_hash, h.value);        \n    }\n\n    /**\n     * @dev Submit a name 6 characters long or less. If it has been registered,\n     *      the submitter will earn 50% of the deed value. \n     * \n     * We are purposefully handicapping the simplified registrar as a way \n     * to force it into being restructured in a few years.\n     *\n     * @param unhashedName An invalid name to search for in the registry.\n     */\n    function invalidateName(string unhashedName) inState(sha3(unhashedName), Mode.Owned) {\n        if (strlen(unhashedName) > 6) throw;\n        bytes32 hash = sha3(unhashedName);\n\n        entry h = _entries[hash];\n\n        _tryEraseSingleNode(hash);\n\n        if (address(h.deed) != 0) {\n            // Reward the discoverer with 50% of the deed\n            // The previous owner gets 50%\n            h.value = max(h.value, minPrice);\n            h.deed.setBalance(h.value/2, false);\n            h.deed.setOwner(msg.sender);\n            h.deed.closeDeed(1000);\n        }\n\n        HashInvalidated(hash, unhashedName, h.value, h.registrationDate);\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n    }\n\n    /**\n     * @dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     *      name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     *      the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     *\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n     *        registrar's root. Must contain at least one element. For instance, to zero \n     *        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n     *        [sha3('foo'), sha3('bar')].\n     */\n    function eraseNode(bytes32[] labels) {\n        if (labels.length == 0) throw;\n        if (state(labels[labels.length - 1]) == Mode.Owned) throw;\n\n        _eraseNodeHierarchy(labels.length - 1, labels, rootNode);\n    }\n\n    function _tryEraseSingleNode(bytes32 label) internal {\n        if (ens.owner(rootNode) == address(this)) {\n            ens.setSubnodeOwner(rootNode, label, address(this));\n            var node = sha3(rootNode, label);\n            ens.setResolver(node, 0);\n            ens.setOwner(node, 0);\n        }\n    }\n\n    function _eraseNodeHierarchy(uint idx, bytes32[] labels, bytes32 node) internal {\n        // Take ownership of the node\n        ens.setSubnodeOwner(node, labels[idx], address(this));\n        node = sha3(node, labels[idx]);\n        \n        // Recurse if there are more labels\n        if (idx > 0) {\n            _eraseNodeHierarchy(idx - 1, labels, node);\n        }\n\n        // Erase the resolver and owner records\n        ens.setResolver(node, 0);\n        ens.setOwner(node, 0);\n    }\n\n    /**\n     * @dev Transfers the deed to the current registrar, if different from this one.\n     *\n     * Used during the upgrade process to a permanent registrar.\n     *\n     * @param _hash The name hash to transfer.\n     */\n    function transferRegistrars(bytes32 _hash) onlyOwner(_hash) {\n        var registrar = ens.owner(rootNode);\n        if (registrar == address(this)) throw;\n\n        // Migrate the deed\n        entry h = _entries[_hash];\n        h.deed.setRegistrar(registrar);\n\n        // Call the new registrar to accept the transfer\n        Registrar(registrar).acceptRegistrarTransfer(_hash, h.deed, h.registrationDate);\n\n        // Zero out the entry\n        h.deed = Deed(0);\n        h.registrationDate = 0;\n        h.value = 0;\n        h.highestBid = 0;\n    }\n\n    /**\n     * @dev Accepts a transfer from a previous registrar; stubbed out here since there\n     *      is no previous registrar implementing this interface.\n     *\n     * @param hash The sha3 hash of the label to transfer.\n     * @param deed The Deed object for the name being transferred in.\n     * @param registrationDate The date at which the name was originally registered.\n     */\n    function acceptRegistrarTransfer(bytes32 hash, Deed deed, uint registrationDate) {\n        hash; deed; registrationDate; // Don't warn about unused variables\n    }\n\n}\n",
  "sourcePath": "/Users/brett/Development/aragon/aragon-id/contracts/test/ens/Registrar.sol",
  "ast": {
    "absolutePath": "/Users/brett/Development/aragon/aragon-id/contracts/test/ens/Registrar.sol",
    "exportedSymbols": {
      "Deed": [
        1596
      ],
      "Registrar": [
        3023
      ]
    },
    "id": 3024,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1403,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:11"
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "file": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "id": 1404,
        "nodeType": "ImportDirective",
        "scope": 3024,
        "sourceUnit": 3408,
        "src": "388:54:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Deed to hold ether in exchange for ownership of a node\n@dev The deed can be controlled only by the registrar and can only send ether back to the owner.",
        "fullyImplemented": true,
        "id": 1596,
        "linearizedBaseContracts": [
          1596
        ],
        "name": "Deed",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1406,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "638:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1405,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "638:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1409,
            "name": "burn",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "668:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1407,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "668:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307864656164",
              "id": 1408,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "692:6:11",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_57005_by_1",
                "typeString": "int_const 57005"
              },
              "value": "0xdead"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1411,
            "name": "creationDate",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "704:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1410,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "704:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1413,
            "name": "owner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "734:20:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1412,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "734:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1415,
            "name": "previousOwner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "760:28:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1414,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "760:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1417,
            "name": "value",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "794:17:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1416,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "794:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1421,
            "name": "OwnerChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1419,
                  "indexed": false,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1421,
                  "src": "836:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1418,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "835:18:11"
            },
            "src": "817:37:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1423,
            "name": "DeedClosed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1422,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "875:2:11"
            },
            "src": "859:19:11"
          },
          {
            "constant": false,
            "id": 1425,
            "name": "active",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "883:11:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 1424,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "883:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1434,
              "nodeType": "Block",
              "src": "924:62:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1427,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "938:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "938:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1429,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "952:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "938:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1432,
                  "nodeType": "IfStatement",
                  "src": "934:34:11",
                  "trueBody": {
                    "id": 1431,
                    "nodeType": "Throw",
                    "src": "963:5:11"
                  }
                },
                {
                  "id": 1433,
                  "nodeType": "PlaceholderStatement",
                  "src": "978:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1435,
            "name": "onlyRegistrar",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "924:0:11"
            },
            "src": "901:85:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1442,
              "nodeType": "Block",
              "src": "1012:46:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1026:7:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 1437,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1027:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1440,
                  "nodeType": "IfStatement",
                  "src": "1022:18:11",
                  "trueBody": {
                    "id": 1439,
                    "nodeType": "Throw",
                    "src": "1035:5:11"
                  }
                },
                {
                  "id": 1441,
                  "nodeType": "PlaceholderStatement",
                  "src": "1050:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1443,
            "name": "onlyActive",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1436,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1012:0:11"
            },
            "src": "992:66:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1470,
              "nodeType": "Block",
              "src": "1102:141:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1448,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1112:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1449,
                      "name": "_owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1445,
                      "src": "1120:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1112:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1451,
                  "nodeType": "ExpressionStatement",
                  "src": "1112:14:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1452,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1136:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1453,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1148:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1454,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1148:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1136:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1456,
                  "nodeType": "ExpressionStatement",
                  "src": "1136:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1457,
                      "name": "creationDate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1411,
                      "src": "1168:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1458,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3424,
                      "src": "1183:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1168:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1460,
                  "nodeType": "ExpressionStatement",
                  "src": "1168:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1461,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1196:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 1462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1205:4:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1196:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1464,
                  "nodeType": "ExpressionStatement",
                  "src": "1196:13:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1468,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1465,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1219:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1466,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1227:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1467,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1227:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1219:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1469,
                  "nodeType": "ExpressionStatement",
                  "src": "1219:17:11"
                }
              ]
            },
            "documentation": null,
            "id": 1471,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Deed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1445,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1471,
                  "src": "1078:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1444,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1078:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1077:16:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 1447,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1102:0:11"
            },
            "scope": 1596,
            "src": "1064:179:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1495,
              "nodeType": "Block",
              "src": "1299:193:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1478,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1313:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1325:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1313:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1482,
                  "nodeType": "IfStatement",
                  "src": "1309:24:11",
                  "trueBody": {
                    "id": 1481,
                    "nodeType": "Throw",
                    "src": "1328:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1483,
                      "name": "previousOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1415,
                      "src": "1343:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1484,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1359:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1343:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1486,
                  "nodeType": "ExpressionStatement",
                  "src": "1343:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1489,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1487,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1437:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1488,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1445:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1437:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1490,
                  "nodeType": "ExpressionStatement",
                  "src": "1437:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1492,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1473,
                        "src": "1476:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1491,
                      "name": "OwnerChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1421,
                      "src": "1463:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1463:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1494,
                  "nodeType": "ExpressionStatement",
                  "src": "1463:22:11"
                }
              ]
            },
            "documentation": null,
            "id": 1496,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1476,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1475,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1285:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1285:13:11"
              }
            ],
            "name": "setOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1473,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1496,
                  "src": "1267:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1472,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1267:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1266:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1477,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1299:0:11"
            },
            "scope": 1596,
            "src": "1249:243:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1507,
              "nodeType": "Block",
              "src": "1556:41:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1503,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1566:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1504,
                      "name": "newRegistrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1498,
                      "src": "1578:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1566:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1506,
                  "nodeType": "ExpressionStatement",
                  "src": "1566:24:11"
                }
              ]
            },
            "documentation": null,
            "id": 1508,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1501,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1500,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1542:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1542:13:11"
              }
            ],
            "name": "setRegistrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1498,
                  "name": "newRegistrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 1508,
                  "src": "1520:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1520:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1519:22:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1502,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1556:0:11"
            },
            "scope": 1596,
            "src": "1498:99:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1540,
              "nodeType": "Block",
              "src": "1684:248:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1519,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1757:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1520,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1765:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1757:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1523,
                  "nodeType": "IfStatement",
                  "src": "1753:27:11",
                  "trueBody": {
                    "id": 1522,
                    "nodeType": "Throw",
                    "src": "1775:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1524,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1790:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1525,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1798:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1790:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1527,
                  "nodeType": "ExpressionStatement",
                  "src": "1790:16:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1537,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "1864:36:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1530,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3471,
                                "src": "1876:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1531,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1876:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1532,
                              "name": "newValue",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1510,
                              "src": "1891:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1876:23:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1528,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1413,
                            "src": "1865:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 1529,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "send",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1865:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) returns (bool)"
                          }
                        },
                        "id": 1534,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1865:35:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1536,
                      "name": "throwOnFailure",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1512,
                      "src": "1904:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1864:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1539,
                  "nodeType": "IfStatement",
                  "src": "1860:65:11",
                  "trueBody": {
                    "id": 1538,
                    "nodeType": "Throw",
                    "src": "1920:5:11"
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1541,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1515,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1514,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1659:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1659:13:11"
              },
              {
                "arguments": null,
                "id": 1517,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1516,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "1673:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1673:10:11"
              }
            ],
            "name": "setBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1510,
                  "name": "newValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1623:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1509,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1512,
                  "name": "throwOnFailure",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1638:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1511,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1638:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1622:36:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1518,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1684:0:11"
            },
            "scope": 1596,
            "src": "1603:329:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1576,
              "nodeType": "Block",
              "src": "2151:152:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1550,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "2161:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 1551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2170:5:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2161:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1553,
                  "nodeType": "ExpressionStatement",
                  "src": "2161:14:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "2189:55:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1562,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1558,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31303030",
                                        "id": 1556,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2203:4:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1000_by_1",
                                          "typeString": "int_const 1000"
                                        },
                                        "value": "1000"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 1557,
                                        "name": "refundRatio",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1543,
                                        "src": "2210:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "2203:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 1559,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "2202:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1560,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3471,
                                    "src": "2225:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$1596",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1561,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balance",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "2225:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2202:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 1563,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2201:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 1564,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2239:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "2201:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1554,
                          "name": "burn",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1409,
                          "src": "2191:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 1555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "send",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2191:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (uint256) returns (bool)"
                        }
                      },
                      "id": 1566,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2191:53:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1569,
                  "nodeType": "IfStatement",
                  "src": "2185:66:11",
                  "trueBody": {
                    "id": 1568,
                    "nodeType": "Throw",
                    "src": "2246:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1570,
                      "name": "DeedClosed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1423,
                      "src": "2261:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2261:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1572,
                  "nodeType": "ExpressionStatement",
                  "src": "2261:12:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1573,
                      "name": "destroyDeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1595,
                      "src": "2283:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2283:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "2283:13:11"
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value\n     * @param refundRatio The amount*1/1000 to refund",
            "id": 1577,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1546,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1545,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "2126:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2126:13:11"
              },
              {
                "arguments": null,
                "id": 1548,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1547,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "2140:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2140:10:11"
              }
            ],
            "name": "closeDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1543,
                  "name": "refundRatio",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "2108:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1542,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2108:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2107:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2151:0:11"
            },
            "scope": 1596,
            "src": "2089:214:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1594,
              "nodeType": "Block",
              "src": "2422:356:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1580,
                    "name": "active",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1425,
                    "src": "2436:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1582,
                  "nodeType": "IfStatement",
                  "src": "2432:17:11",
                  "trueBody": {
                    "id": 1581,
                    "nodeType": "Throw",
                    "src": "2444:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1585,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3471,
                          "src": "2714:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        },
                        "id": 1586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2714:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1583,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1413,
                        "src": "2703:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "send",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2703:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (uint256) returns (bool)"
                      }
                    },
                    "id": 1587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2703:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1593,
                  "nodeType": "IfStatement",
                  "src": "2699:73:11",
                  "trueBody": {
                    "id": 1592,
                    "nodeType": "Block",
                    "src": "2729:43:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1589,
                              "name": "burn",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1409,
                              "src": "2756:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1588,
                            "name": "selfdestruct",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3430,
                            "src": "2743:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 1590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2743:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1591,
                        "nodeType": "ExpressionStatement",
                        "src": "2743:18:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value",
            "id": 1595,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "destroyDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1578,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2419:2:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2422:0:11"
            },
            "scope": 1596,
            "src": "2399:379:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "618:2162:11"
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          1596
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 3023,
        "linearizedBaseContracts": [
          3023
        ],
        "name": "Registrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1598,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2923:22:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_AbstractENS_$3407",
              "typeString": "contract AbstractENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 1597,
              "name": "AbstractENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3407,
              "src": "2923:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                "typeString": "contract AbstractENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1600,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2951:23:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1599,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "2951:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1604,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2981:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
              "typeString": "mapping(bytes32 => struct Registrar.entry)"
            },
            "typeName": {
              "id": 1603,
              "keyType": {
                "id": 1601,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "2990:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "2981:26:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                "typeString": "mapping(bytes32 => struct Registrar.entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1602,
                "name": "entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1690,
                "src": "3001:5:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                  "typeString": "struct Registrar.entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1610,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3022:63:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 1609,
              "keyType": {
                "id": 1605,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3031:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3022:45:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 1608,
                "keyType": {
                  "id": 1606,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3050:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "3042:24:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 1607,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3061:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "Registrar.Mode",
            "id": 1617,
            "members": [
              {
                "id": 1611,
                "name": "Open",
                "nodeType": "EnumValue",
                "src": "3108:4:11"
              },
              {
                "id": 1612,
                "name": "Auction",
                "nodeType": "EnumValue",
                "src": "3114:7:11"
              },
              {
                "id": 1613,
                "name": "Owned",
                "nodeType": "EnumValue",
                "src": "3123:5:11"
              },
              {
                "id": 1614,
                "name": "Forbidden",
                "nodeType": "EnumValue",
                "src": "3130:9:11"
              },
              {
                "id": 1615,
                "name": "Reveal",
                "nodeType": "EnumValue",
                "src": "3141:6:11"
              },
              {
                "id": 1616,
                "name": "NotYetAvailable",
                "nodeType": "EnumValue",
                "src": "3149:15:11"
              }
            ],
            "name": "Mode",
            "nodeType": "EnumDefinition",
            "src": "3096:70:11"
          },
          {
            "constant": true,
            "id": 1620,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3172:43:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1618,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3172:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 1619,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3209:6:11",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1623,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3221:39:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1621,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3221:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 1622,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3252:8:11",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1626,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3266:45:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1624,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3266:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 1625,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3304:7:11",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1629,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3318:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1627,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3318:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 1628,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3343:10:11",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1631,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3359:27:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1630,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3359:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1637,
            "name": "AuctionStarted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1633,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3414:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1632,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3414:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1635,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3436:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1634,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3436:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3413:45:11"
            },
            "src": "3393:66:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1645,
            "name": "NewBid",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1639,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3477:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1638,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3477:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1641,
                  "indexed": true,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3499:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1640,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3499:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1643,
                  "indexed": false,
                  "name": "deposit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3523:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1642,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3476:60:11"
            },
            "src": "3464:73:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1655,
            "name": "BidRevealed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1647,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3560:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1646,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3560:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1649,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3582:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1648,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3582:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1651,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3605:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1650,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3605:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1653,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3617:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1652,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3617:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3559:71:11"
            },
            "src": "3542:89:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1665,
            "name": "HashRegistered",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1657,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3657:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1656,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3657:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1659,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3679:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1658,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3679:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1661,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3702:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1660,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3702:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1663,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3714:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1662,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3714:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3656:80:11"
            },
            "src": "3636:101:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1671,
            "name": "HashReleased",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1667,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3761:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1666,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3761:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1669,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3783:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1668,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3783:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3760:34:11"
            },
            "src": "3742:53:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1681,
            "name": "HashInvalidated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1673,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3822:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1672,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3822:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1675,
                  "indexed": true,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3844:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1674,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3844:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1677,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3865:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1676,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3865:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1679,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3877:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1678,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3877:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3821:78:11"
            },
            "src": "3800:100:11"
          },
          {
            "canonicalName": "Registrar.entry",
            "id": 1690,
            "members": [
              {
                "constant": false,
                "id": 1683,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3929:9:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$1596",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1682,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3929:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1685,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3948:21:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1684,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3948:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1687,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3979:10:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1686,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3979:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1689,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3999:15:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1688,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3999:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "entry",
            "nodeType": "StructDefinition",
            "scope": 3023,
            "src": "3906:115:11",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1747,
              "nodeType": "Block",
              "src": "4304:526:11",
              "statements": [
                {
                  "assignments": [
                    1697
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1697,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1748,
                      "src": "4314:9:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1701,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1698,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "4326:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1700,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1699,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1692,
                      "src": "4335:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4326:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4314:27:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "4364:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1703,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1692,
                          "src": "4375:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1704,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "4382:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1702,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2010,
                        "src": "4365:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4365:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1711,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "4450:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1712,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1697,
                          "src": "4456:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1713,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "4456:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4450:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 1744,
                      "nodeType": "Block",
                      "src": "4668:156:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1734,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1731,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1697,
                                "src": "4686:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 1732,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1689,
                              "src": "4686:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1733,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4706:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "4686:21:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1742,
                            "nodeType": "Block",
                            "src": "4764:50:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1739,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4789:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1740,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4789:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1741,
                                "nodeType": "Return",
                                "src": "4782:17:11"
                              }
                            ]
                          },
                          "id": 1743,
                          "nodeType": "IfStatement",
                          "src": "4682:132:11",
                          "trueBody": {
                            "id": 1738,
                            "nodeType": "Block",
                            "src": "4709:49:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1735,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4734:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1736,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4734:9:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1737,
                                "nodeType": "Return",
                                "src": "4727:16:11"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 1745,
                    "nodeType": "IfStatement",
                    "src": "4446:378:11",
                    "trueBody": {
                      "id": 1730,
                      "nodeType": "Block",
                      "src": "4480:182:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1715,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3424,
                              "src": "4498:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1716,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1697,
                                  "src": "4504:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 1717,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1685,
                                "src": "4504:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1718,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1623,
                                "src": "4529:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "4504:37:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4498:43:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1728,
                            "nodeType": "Block",
                            "src": "4601:51:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1725,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4626:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1726,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4626:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1727,
                                "nodeType": "Return",
                                "src": "4619:18:11"
                              }
                            ]
                          },
                          "id": 1729,
                          "nodeType": "IfStatement",
                          "src": "4494:158:11",
                          "trueBody": {
                            "id": 1724,
                            "nodeType": "Block",
                            "src": "4543:52:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1721,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4568:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1722,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4568:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1723,
                                "nodeType": "Return",
                                "src": "4561:19:11"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 1746,
                  "nodeType": "IfStatement",
                  "src": "4360:464:11",
                  "trueBody": {
                    "id": 1710,
                    "nodeType": "Block",
                    "src": "4388:52:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1707,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1617,
                            "src": "4409:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4409:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$1617",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1696,
                        "id": 1709,
                        "nodeType": "Return",
                        "src": "4402:27:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1748,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1692,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4265:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4265:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4264:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4298:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1694,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4298:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4297:6:11"
            },
            "scope": 3023,
            "src": "4250:580:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1762,
              "nodeType": "Block",
              "src": "4881:61:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 1758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1755,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1750,
                          "src": "4901:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 1754,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "4895:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 1756,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4895:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1757,
                      "name": "_state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1752,
                      "src": "4911:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "4895:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1760,
                  "nodeType": "IfStatement",
                  "src": "4891:33:11",
                  "trueBody": {
                    "id": 1759,
                    "nodeType": "Throw",
                    "src": "4919:5:11"
                  }
                },
                {
                  "id": 1761,
                  "nodeType": "PlaceholderStatement",
                  "src": "4934:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1763,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1753,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1750,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4853:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1749,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4853:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1752,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4868:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1751,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4868:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4852:28:11"
            },
            "src": "4836:106:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1786,
              "nodeType": "Block",
              "src": "4982:111:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 1772,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1768,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "5002:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1767,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "4996:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1769,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4996:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1770,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "5012:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 1771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Owned",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5012:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "4996:26:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1773,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "5026:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5026:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1775,
                                "name": "_entries",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1604,
                                "src": "5040:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                                  "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                                }
                              },
                              "id": 1777,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1776,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1765,
                                "src": "5049:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5040:15:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage",
                                "typeString": "struct Registrar.entry storage ref"
                              }
                            },
                            "id": 1778,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "5040:20:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "5040:26:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1780,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5040:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5026:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4996:72:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1784,
                  "nodeType": "IfStatement",
                  "src": "4992:83:11",
                  "trueBody": {
                    "id": 1783,
                    "nodeType": "Throw",
                    "src": "5070:5:11"
                  }
                },
                {
                  "id": 1785,
                  "nodeType": "PlaceholderStatement",
                  "src": "5085:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1787,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1766,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1765,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1787,
                  "src": "4967:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1764,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4967:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4966:15:11"
            },
            "src": "4948:145:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1810,
              "nodeType": "Block",
              "src": "5123:136:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 1797,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1789,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5137:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1790,
                          "name": "registryStarted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1631,
                          "src": "5143:15:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5137:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1792,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5163:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1793,
                            "name": "registryStarted",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1631,
                            "src": "5169:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "34",
                            "id": 1794,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5187:7:11",
                            "subdenomination": "years",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_126144000_by_1",
                              "typeString": "int_const 126144000"
                            },
                            "value": "4"
                          },
                          "src": "5169:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5163:31:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "5137:57:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1800,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "5208:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1798,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "5198:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 1799,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "5198:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 1801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5198:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1803,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "5229:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 1802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5221:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5221:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5198:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5137:97:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1808,
                  "nodeType": "IfStatement",
                  "src": "5133:108:11",
                  "trueBody": {
                    "id": 1807,
                    "nodeType": "Throw",
                    "src": "5236:5:11"
                  }
                },
                {
                  "id": 1809,
                  "nodeType": "PlaceholderStatement",
                  "src": "5251:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1811,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1788,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5120:2:11"
            },
            "src": "5099:160:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1845,
              "nodeType": "Block",
              "src": "5348:124:11",
              "statements": [
                {
                  "assignments": [
                    1827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1827,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1846,
                      "src": "5358:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1826,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "5358:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1831,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1828,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "5368:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1830,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1829,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1813,
                      "src": "5377:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5368:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5358:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1833,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1813,
                            "src": "5407:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1832,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "5401:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5401:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1835,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5415:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1836,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "5415:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1837,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5423:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1838,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "5423:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1839,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5443:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1840,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "5443:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1841,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5452:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1842,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1689,
                        "src": "5452:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1843,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5400:65:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$1617_$_t_contract$_Deed_$1596_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,contract Deed,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1825,
                  "id": 1844,
                  "nodeType": "Return",
                  "src": "5393:72:11"
                }
              ]
            },
            "documentation": null,
            "id": 1846,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1813,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5282:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5282:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5281:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1825,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1816,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5315:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1815,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "5315:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1818,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5321:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1817,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5321:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1820,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5330:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1819,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5330:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1822,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5336:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1821,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5336:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1824,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5342:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1823,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5342:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5314:33:11"
            },
            "scope": 3023,
            "src": "5265:207:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1872,
              "nodeType": "Block",
              "src": "5763:118:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1855,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1598,
                      "src": "5773:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1856,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1848,
                      "src": "5779:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "src": "5773:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "id": 1858,
                  "nodeType": "ExpressionStatement",
                  "src": "5773:10:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1859,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1600,
                      "src": "5793:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1860,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1850,
                      "src": "5804:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "5793:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1862,
                  "nodeType": "ExpressionStatement",
                  "src": "5793:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1863,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "5823:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1864,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1852,
                          "src": "5841:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5854:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5841:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 1868,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "5871:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "5841:33:11",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 1867,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1852,
                        "src": "5858:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5823:51:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1871,
                  "nodeType": "ExpressionStatement",
                  "src": "5823:51:11"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 1873,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Registrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1853,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1848,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5709:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_AbstractENS_$3407",
                    "typeString": "contract AbstractENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1847,
                    "name": "AbstractENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3407,
                    "src": "5709:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1850,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5727:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1849,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5727:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1852,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5746:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1851,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5746:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5708:54:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5763:0:11"
            },
            "scope": 3023,
            "src": "5690:191:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1890,
              "nodeType": "Block",
              "src": "6157:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1882,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6171:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1883,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6175:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6171:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1887,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6232:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1888,
                    "nodeType": "Return",
                    "src": "6225:8:11"
                  },
                  "id": 1889,
                  "nodeType": "IfStatement",
                  "src": "6167:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1885,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6197:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1886,
                    "nodeType": "Return",
                    "src": "6190:8:11"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 1891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1875,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6104:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1874,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6104:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1877,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6112:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1876,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6112:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6103:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1880,
                  "name": "max",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6147:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6147:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6146:10:11"
            },
            "scope": 3023,
            "src": "6091:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1908,
              "nodeType": "Block",
              "src": "6516:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1900,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6530:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1901,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6534:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6530:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1905,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6591:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1906,
                    "nodeType": "Return",
                    "src": "6584:8:11"
                  },
                  "id": 1907,
                  "nodeType": "IfStatement",
                  "src": "6526:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1903,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6556:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1904,
                    "nodeType": "Return",
                    "src": "6549:8:11"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 1909,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1896,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1893,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6463:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1892,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6463:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1895,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6471:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1894,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6471:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6462:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1898,
                  "name": "min",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6506:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1897,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6506:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6505:10:11"
            },
            "scope": 3023,
            "src": "6450:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1993,
              "nodeType": "Block",
              "src": "6834:766:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1916,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1911,
                    "src": "6844:1:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 1917,
                  "nodeType": "ExpressionStatement",
                  "src": "6844:1:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1919,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6962:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1918,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6962:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1920,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6962:8:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1922,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6980:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1921,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6980:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1923,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6980:8:11"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7021:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7032:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7067:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 1922,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7050:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7071:3:11",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 1924,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "6998:99:11"
                },
                {
                  "body": {
                    "id": 1989,
                    "nodeType": "Block",
                    "src": "7131:443:11",
                    "statements": [
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1936,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 1994,
                            "src": "7145:7:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 1935,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "7145:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1937,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "7145:7:11"
                      },
                      {
                        "externalReferences": [
                          {
                            "ptr": {
                              "declaration": 1919,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7192:3:11",
                              "valueSize": 1
                            }
                          },
                          {
                            "b": {
                              "declaration": 1936,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7177:1:11",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 1938,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "7166:54:11"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1939,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1936,
                            "src": "7222:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 1940,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7226:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "7222:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 1949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1947,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1936,
                              "src": "7283:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 1948,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7287:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "7283:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 1957,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1955,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1936,
                                "src": "7344:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 1956,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7348:4:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "7344:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 1965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1963,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1936,
                                  "src": "7405:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 1964,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7409:4:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "7405:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 1973,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 1971,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1936,
                                    "src": "7466:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 1972,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7470:4:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "7466:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 1983,
                                  "nodeType": "Block",
                                  "src": "7523:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1981,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1979,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7541:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 1980,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7548:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "7541:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1982,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7541:8:11"
                                    }
                                  ]
                                },
                                "id": 1984,
                                "nodeType": "IfStatement",
                                "src": "7462:102:11",
                                "trueBody": {
                                  "id": 1978,
                                  "nodeType": "Block",
                                  "src": "7476:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1976,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1974,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7494:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 1975,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7501:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "7494:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1977,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7494:8:11"
                                    }
                                  ]
                                }
                              },
                              "id": 1985,
                              "nodeType": "IfStatement",
                              "src": "7401:163:11",
                              "trueBody": {
                                "id": 1970,
                                "nodeType": "Block",
                                "src": "7415:41:11",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1968,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 1966,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1919,
                                        "src": "7433:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 1967,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7440:1:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "7433:8:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1969,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7433:8:11"
                                  }
                                ]
                              }
                            },
                            "id": 1986,
                            "nodeType": "IfStatement",
                            "src": "7340:224:11",
                            "trueBody": {
                              "id": 1962,
                              "nodeType": "Block",
                              "src": "7354:41:11",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1960,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1958,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1919,
                                      "src": "7372:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1959,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "7379:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "7372:8:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 1961,
                                  "nodeType": "ExpressionStatement",
                                  "src": "7372:8:11"
                                }
                              ]
                            }
                          },
                          "id": 1987,
                          "nodeType": "IfStatement",
                          "src": "7279:285:11",
                          "trueBody": {
                            "id": 1954,
                            "nodeType": "Block",
                            "src": "7293:41:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1952,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1950,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1919,
                                    "src": "7311:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1951,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7318:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "7311:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1953,
                                "nodeType": "ExpressionStatement",
                                "src": "7311:8:11"
                              }
                            ]
                          }
                        },
                        "id": 1988,
                        "nodeType": "IfStatement",
                        "src": "7218:346:11",
                        "trueBody": {
                          "id": 1946,
                          "nodeType": "Block",
                          "src": "7232:41:11",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1944,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1942,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1919,
                                  "src": "7250:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1943,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7257:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "7250:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1945,
                              "nodeType": "ExpressionStatement",
                              "src": "7250:8:11"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1929,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "7113:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1930,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1922,
                      "src": "7119:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7113:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1990,
                  "initializationExpression": {
                    "assignments": [
                      1926
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1926,
                        "name": "len",
                        "nodeType": "VariableDeclaration",
                        "scope": 1994,
                        "src": "7099:8:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1925,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7099:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1928,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7110:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7099:12:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7124:5:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1932,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1926,
                        "src": "7124:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1934,
                    "nodeType": "ExpressionStatement",
                    "src": "7124:5:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "7094:480:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1991,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1926,
                    "src": "7590:3:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1915,
                  "id": 1992,
                  "nodeType": "Return",
                  "src": "7583:10:11"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 1994,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1912,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1911,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6791:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1910,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6791:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6790:10:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1914,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6828:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1913,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6828:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6827:6:11"
            },
            "scope": 3023,
            "src": "6775:825:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2009,
              "nodeType": "Block",
              "src": "8009:58:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2007,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2003,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1998,
                      "src": "8026:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2005,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1996,
                          "src": "8054:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2004,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2033,
                        "src": "8039:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 2006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8039:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8026:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2002,
                  "id": 2008,
                  "nodeType": "Return",
                  "src": "8019:41:11"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n\n     * Each name will be assigned a random date in which its auction \ncan be started, from 0 to 8 weeks\n\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 2010,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1996,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7946:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1995,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7946:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1998,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7961:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1997,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7961:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7945:32:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2001,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7996:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2000,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7996:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7995:14:11"
            },
            "scope": 3023,
            "src": "7927:140:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2032,
              "nodeType": "Block",
              "src": "8384:140:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2017,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "8401:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2028,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2025,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2018,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1626,
                                  "src": "8421:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 2023,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 2020,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2012,
                                            "src": "8442:5:11",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 2019,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8437:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 2021,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8437:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 2022,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8452:3:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "8437:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 2024,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8436:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8421:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2026,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "8420:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 2027,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8461:3:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "8420:44:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 2029,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "8419:46:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8401:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2016,
                  "id": 2031,
                  "nodeType": "Return",
                  "src": "8394:71:11"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n\n     * @param _hash The hash to start an auction on",
            "id": 2033,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2012,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8335:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2011,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8335:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8334:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2016,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2015,
                  "name": "timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8368:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2014,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8368:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8367:16:11"
            },
            "scope": 3023,
            "src": "8311:213:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2057,
              "nodeType": "Block",
              "src": "8780:126:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2042,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8804:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2040,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8794:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "8794:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8794:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2045,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "8825:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8817:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2046,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8817:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8794:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2056,
                  "nodeType": "IfStatement",
                  "src": "8790:101:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2051,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8864:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2052,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2035,
                          "src": "8874:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2053,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2037,
                          "src": "8881:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2048,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8844:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3366,
                        "src": "8844:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                          "typeString": "function (bytes32,bytes32,address) external"
                        }
                      },
                      "id": 2054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8844:47:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2055,
                    "nodeType": "ExpressionStatement",
                    "src": "8844:47:11"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 2058,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2035,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8737:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2034,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8737:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2037,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8752:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2036,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8752:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8736:34:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2039,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8780:0:11"
            },
            "scope": 3023,
            "src": "8709:197:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2114,
              "nodeType": "Block",
              "src": "9090:354:11",
              "statements": [
                {
                  "assignments": [
                    2065
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2065,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9100:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2069,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2067,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9117:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2066,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "9111:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9111:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9100:23:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2070,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9137:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2071,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9145:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2072,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9145:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9137:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2075,
                  "nodeType": "IfStatement",
                  "src": "9133:33:11",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 2064,
                    "id": 2074,
                    "nodeType": "Return",
                    "src": "9159:7:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2076,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9179:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2077,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9187:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Open",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9187:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9179:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2081,
                  "nodeType": "IfStatement",
                  "src": "9175:28:11",
                  "trueBody": {
                    "id": 2080,
                    "nodeType": "Throw",
                    "src": "9198:5:11"
                  }
                },
                {
                  "assignments": [
                    2083
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2083,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9214:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2082,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "9214:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2087,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2084,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "9233:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2086,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2085,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2060,
                      "src": "9242:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9233:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9214:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2088,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9258:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2090,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "9258:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2091,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "9288:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2092,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9294:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "9288:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9258:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2095,
                  "nodeType": "ExpressionStatement",
                  "src": "9258:54:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2096,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9322:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "9322:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2099,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9341:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9322:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2101,
                  "nodeType": "ExpressionStatement",
                  "src": "9322:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2102,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9352:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2104,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "9352:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2105,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9376:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9352:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2107,
                  "nodeType": "ExpressionStatement",
                  "src": "9352:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2109,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9402:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2110,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2083,
                          "src": "9409:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2111,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "9409:27:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2108,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1637,
                      "src": "9387:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9387:50:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2113,
                  "nodeType": "ExpressionStatement",
                  "src": "9387:50:11"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 2115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 2063,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2062,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1811,
                  "src": "9075:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9075:14:11"
              }
            ],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2060,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2115,
                  "src": "9060:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2059,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9060:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9059:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2064,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9090:0:11"
            },
            "scope": 3023,
            "src": "9038:406:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2140,
              "nodeType": "Block",
              "src": "10081:108:11",
              "statements": [
                {
                  "body": {
                    "id": 2138,
                    "nodeType": "Block",
                    "src": "10134:49:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2133,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2118,
                                "src": "10161:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2135,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2134,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2122,
                                "src": "10169:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10161:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2132,
                            "name": "startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2115,
                            "src": "10148:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 2136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10148:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2137,
                        "nodeType": "ExpressionStatement",
                        "src": "10148:24:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2125,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2122,
                      "src": "10108:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2126,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2118,
                        "src": "10112:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2127,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10112:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10108:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2139,
                  "initializationExpression": {
                    "assignments": [
                      2122
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2122,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2141,
                        "src": "10096:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 2121,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10096:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2124,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10105:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10096:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10128:4:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2129,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2122,
                        "src": "10128:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2131,
                    "nodeType": "ExpressionStatement",
                    "src": "10128:4:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "10091:92:11"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 2141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2118,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "10061:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2116,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10061:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2117,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10061:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10060:19:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10081:0:11"
            },
            "scope": 3023,
            "src": "10038:151:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2161,
              "nodeType": "Block",
              "src": "10586:54:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2155,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2143,
                        "src": "10608:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2156,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2145,
                        "src": "10614:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2157,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "10621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2158,
                        "name": "salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "10628:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2154,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "10603:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10603:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2153,
                  "id": 2160,
                  "nodeType": "Return",
                  "src": "10596:37:11"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 2162,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10494:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10494:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2145,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10508:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10508:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10523:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10535:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10535:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10493:55:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2152,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10567:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10567:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10566:19:11"
            },
            "scope": 3023,
            "src": "10478:162:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2215,
              "nodeType": "Block",
              "src": "11539:335:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2168,
                              "name": "sealedBids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1610,
                              "src": "11561:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                              }
                            },
                            "id": 2171,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2169,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "11572:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2170,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11572:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11561:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                              "typeString": "mapping(bytes32 => contract Deed)"
                            }
                          },
                          "id": 2173,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2172,
                            "name": "sealedBid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2164,
                            "src": "11584:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11561:33:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11553:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2174,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11553:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2175,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11598:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11553:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2178,
                  "nodeType": "IfStatement",
                  "src": "11549:57:11",
                  "trueBody": {
                    "id": 2177,
                    "nodeType": "Throw",
                    "src": "11601:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2179,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "11620:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2180,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11620:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2181,
                      "name": "minPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1629,
                      "src": "11632:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11620:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2184,
                  "nodeType": "IfStatement",
                  "src": "11616:31:11",
                  "trueBody": {
                    "id": 2183,
                    "nodeType": "Throw",
                    "src": "11642:5:11"
                  }
                },
                {
                  "assignments": [
                    2186
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2186,
                      "name": "newBid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2216,
                      "src": "11712:11:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2185,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "11712:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2197,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2194,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11754:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11754:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2191,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11743:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11743:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2188,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "11727:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                                "typeString": "function (address) payable returns (contract Deed)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2187,
                                "name": "Deed",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 1596,
                                "src": "11731:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              }
                            }
                          ],
                          "id": 2189,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11726:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                            "typeString": "function (address) payable returns (contract Deed)"
                          }
                        },
                        "id": 2190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11726:16:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value_$",
                          "typeString": "function (uint256) returns (function (address) payable returns (contract Deed))"
                        }
                      },
                      "id": 2193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11726:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value",
                        "typeString": "function (address) payable returns (contract Deed)"
                      }
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11726:39:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11712:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2198,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "11775:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2202,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2199,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11786:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2200,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11786:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11775:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2203,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2201,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11798:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11775:33:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2204,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2186,
                      "src": "11811:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11775:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2206,
                  "nodeType": "ExpressionStatement",
                  "src": "11775:42:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2208,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11834:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2209,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11845:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11845:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2211,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11857:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11857:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2207,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1645,
                      "src": "11827:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11827:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2214,
                  "nodeType": "ExpressionStatement",
                  "src": "11827:40:11"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 2216,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2164,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2216,
                  "src": "11512:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2163,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11512:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11511:19:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11539:0:11"
            },
            "scope": 3023,
            "src": "11496:378:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2232,
              "nodeType": "Block",
              "src": "12290:65:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2225,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2219,
                        "src": "12314:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "id": 2224,
                      "name": "startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2141,
                      "src": "12300:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12300:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "12300:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2229,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2221,
                        "src": "12338:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2228,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2216,
                      "src": "12331:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12331:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2231,
                  "nodeType": "ExpressionStatement",
                  "src": "12331:17:11"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 2233,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2219,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12245:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2217,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "12245:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2218,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "12245:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2221,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12263:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12263:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12244:37:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2223,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12290:0:11"
            },
            "scope": 3023,
            "src": "12216:139:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2454,
              "nodeType": "Block",
              "src": "12649:1836:11",
              "statements": [
                {
                  "assignments": [
                    2243
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2243,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12659:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2242,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12659:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2251,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2245,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "12681:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2246,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12688:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12688:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2248,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12700:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2249,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2239,
                        "src": "12708:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2244,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2162,
                      "src": "12674:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12674:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12659:55:11"
                },
                {
                  "assignments": [
                    2253
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2253,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12724:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2252,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "12724:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2260,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2254,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "12735:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2257,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2255,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12746:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12746:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "12735:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2259,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2258,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2243,
                      "src": "12758:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12735:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12724:39:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2262,
                          "name": "bid",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2253,
                          "src": "12785:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12777:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12777:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2264,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12793:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12777:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2267,
                  "nodeType": "IfStatement",
                  "src": "12773:28:11",
                  "trueBody": {
                    "id": 2266,
                    "nodeType": "Throw",
                    "src": "12796:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2277,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2268,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "12812:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2272,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2269,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "12823:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2270,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12823:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12812:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2273,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2271,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2243,
                        "src": "12835:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12812:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2275,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12848:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2274,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "12843:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12843:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "12812:38:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2278,
                  "nodeType": "ExpressionStatement",
                  "src": "12812:38:11"
                },
                {
                  "assignments": [
                    2280
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2280,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12860:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2279,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "12860:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2284,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2281,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "12870:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2283,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2282,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2235,
                      "src": "12879:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12870:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12860:25:11"
                },
                {
                  "assignments": [
                    2286
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2286,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12895:10:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2285,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12895:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2293,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2288,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12912:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2289,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2253,
                            "src": "12920:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1417,
                          "src": "12920:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 2291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12920:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2287,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1909,
                      "src": "12908:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (uint256)"
                      }
                    },
                    "id": 2292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12908:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12895:37:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2297,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2286,
                        "src": "12957:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2298,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12964:4:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2294,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2253,
                        "src": "12942:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2296,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "12942:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12942:27:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2300,
                  "nodeType": "ExpressionStatement",
                  "src": "12942:27:11"
                },
                {
                  "assignments": [
                    2301
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2301,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12980:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2305,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2303,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "13005:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2302,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "12999:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2304,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12999:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12980:31:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2306,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2301,
                      "src": "13025:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2307,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "13041:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2308,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13041:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "13025:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 2328,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2325,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2301,
                        "src": "13223:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2326,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "13239:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 2327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13239:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "13223:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2331,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13321:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2332,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1629,
                            "src": "13329:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13321:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2334,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2253,
                                "src": "13341:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2335,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "13341:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2336,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13341:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2340,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2337,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "13362:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2338,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1685,
                              "src": "13362:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2339,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1623,
                              "src": "13383:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "13362:33:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13341:54:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "13321:74:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2361,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2358,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13557:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2359,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2280,
                              "src": "13565:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2360,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1689,
                            "src": "13565:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13557:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2409,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "14139:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2410,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "14147:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2411,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1687,
                              "src": "14147:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "14139:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2448,
                            "nodeType": "Block",
                            "src": "14340:139:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2437,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14410:3:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2434,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14396:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2436,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14396:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2438,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14396:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2439,
                                "nodeType": "ExpressionStatement",
                                "src": "14396:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2441,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14440:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2442,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14447:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2443,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14447:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2444,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14459:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 2445,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14466:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 2440,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14428:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2446,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14428:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2447,
                                "nodeType": "ExpressionStatement",
                                "src": "14428:40:11"
                              }
                            ]
                          },
                          "id": 2449,
                          "nodeType": "IfStatement",
                          "src": "14135:344:11",
                          "trueBody": {
                            "id": 2433,
                            "nodeType": "Block",
                            "src": "14156:178:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2413,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2280,
                                      "src": "14222:1:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                        "typeString": "struct Registrar.entry storage pointer"
                                      }
                                    },
                                    "id": 2415,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1687,
                                    "src": "14222:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 2416,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14232:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "14222:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2418,
                                "nodeType": "ExpressionStatement",
                                "src": "14222:15:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2422,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14265:3:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2419,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14251:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2421,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14251:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14251:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2424,
                                "nodeType": "ExpressionStatement",
                                "src": "14251:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2426,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14295:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2427,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14302:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2428,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14302:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2429,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14314:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14321:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 2425,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14283:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2431,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14283:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2432,
                                "nodeType": "ExpressionStatement",
                                "src": "14283:40:11"
                              }
                            ]
                          }
                        },
                        "id": 2450,
                        "nodeType": "IfStatement",
                        "src": "13553:926:11",
                        "trueBody": {
                          "id": 2408,
                          "nodeType": "Block",
                          "src": "13579:550:11",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2363,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13681:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2364,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13681:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 2362,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "13673:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 2365,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13673:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2366,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13692:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13673:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 2380,
                              "nodeType": "IfStatement",
                              "src": "13669:134:11",
                              "trueBody": {
                                "id": 2379,
                                "nodeType": "Block",
                                "src": "13695:108:11",
                                "statements": [
                                  {
                                    "assignments": [
                                      2369
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 2369,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 2455,
                                        "src": "13713:19:11",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$1596",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 2368,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 1596,
                                          "src": "13713:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 2372,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2370,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13735:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2371,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13735:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13713:28:11"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 2376,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "13784:3:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2373,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2369,
                                          "src": "13759:14:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 2375,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 1577,
                                        "src": "13759:24:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 2377,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13759:29:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 2378,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13759:29:11"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2386,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2381,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13940:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2383,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1687,
                                  "src": "13940:7:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2384,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13950:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2385,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "13950:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13940:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2387,
                              "nodeType": "ExpressionStatement",
                              "src": "13940:22:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2388,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14018:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2390,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "14018:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2391,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "14033:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14018:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2393,
                              "nodeType": "ExpressionStatement",
                              "src": "14018:20:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2394,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14052:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2396,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1683,
                                  "src": "14052:6:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2397,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "14061:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "14052:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2399,
                              "nodeType": "ExpressionStatement",
                              "src": "14052:12:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2401,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2235,
                                    "src": "14090:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2402,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3422,
                                      "src": "14097:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 2403,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "14097:10:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 2404,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14109:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2405,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14116:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 2400,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1655,
                                  "src": "14078:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 2406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14078:40:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 2407,
                              "nodeType": "ExpressionStatement",
                              "src": "14078:40:11"
                            }
                          ]
                        }
                      },
                      "id": 2451,
                      "nodeType": "IfStatement",
                      "src": "13317:1162:11",
                      "trueBody": {
                        "id": 2357,
                        "nodeType": "Block",
                        "src": "13397:150:11",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 2346,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13478:3:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2343,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "13464:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 2345,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1577,
                                "src": "13464:13:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 2347,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13464:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2348,
                            "nodeType": "ExpressionStatement",
                            "src": "13464:18:11"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2350,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2235,
                                  "src": "13508:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2351,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3422,
                                    "src": "13515:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2352,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13515:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 2353,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "13527:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2354,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13534:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2349,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1655,
                                "src": "13496:11:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 2355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13496:40:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2356,
                            "nodeType": "ExpressionStatement",
                            "src": "13496:40:11"
                          }
                        ]
                      }
                    },
                    "id": 2452,
                    "nodeType": "IfStatement",
                    "src": "13219:1260:11",
                    "trueBody": {
                      "id": 2330,
                      "nodeType": "Block",
                      "src": "13252:59:11",
                      "statements": [
                        {
                          "id": 2329,
                          "nodeType": "Throw",
                          "src": "13295:5:11"
                        }
                      ]
                    }
                  },
                  "id": 2453,
                  "nodeType": "IfStatement",
                  "src": "13021:1458:11",
                  "trueBody": {
                    "id": 2324,
                    "nodeType": "Block",
                    "src": "13053:160:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 2313,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13146:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2310,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2253,
                              "src": "13132:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "13132:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13132:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2315,
                        "nodeType": "ExpressionStatement",
                        "src": "13132:16:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2317,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2235,
                              "src": "13174:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2318,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "13181:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2319,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "13181:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2320,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "13193:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2321,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13200:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 2316,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1655,
                            "src": "13162:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 2322,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13162:40:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2323,
                        "nodeType": "ExpressionStatement",
                        "src": "13162:40:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 2455,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2235,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12606:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2234,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12606:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2237,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12621:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2236,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12621:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2239,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12634:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12634:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12605:43:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2241,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12649:0:11"
            },
            "scope": 3023,
            "src": "12587:1898:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2517,
              "nodeType": "Block",
              "src": "14649:783:11",
              "statements": [
                {
                  "assignments": [
                    2463
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2463,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2518,
                      "src": "14659:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2462,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "14659:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2469,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2464,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "14670:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2465,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "14681:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "14670:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2468,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2467,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2459,
                      "src": "14689:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "14670:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14659:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2471,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2463,
                            "src": "15126:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 2470,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "15118:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2472,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15118:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15134:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "15118:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2475,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "15151:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2480,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2476,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2463,
                                "src": "15157:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "15157:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2478,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15157:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2479,
                            "name": "totalAuctionLength",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1620,
                            "src": "15178:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "15157:39:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 2481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15199:7:11",
                          "subdenomination": "weeks",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1209600_by_1",
                            "typeString": "int_const 1209600"
                          },
                          "value": "2"
                        },
                        "src": "15157:49:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15151:55:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15118:88:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2486,
                  "nodeType": "IfStatement",
                  "src": "15114:99:11",
                  "trueBody": {
                    "id": 2485,
                    "nodeType": "Throw",
                    "src": "15208:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2490,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "15303:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15303:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2487,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15290:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "15290:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15290:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2493,
                  "nodeType": "ExpressionStatement",
                  "src": "15290:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15338:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2494,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15324:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "15324:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15324:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2499,
                  "nodeType": "ExpressionStatement",
                  "src": "15324:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2500,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "15350:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2501,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2457,
                          "src": "15361:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15350:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2504,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2502,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15369:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "15350:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15382:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2505,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "15377:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15377:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "15350:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2509,
                  "nodeType": "ExpressionStatement",
                  "src": "15350:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15406:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2512,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "15412:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15420:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15423:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 2510,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1655,
                      "src": "15394:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 2515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15394:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2516,
                  "nodeType": "ExpressionStatement",
                  "src": "15394:31:11"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 2518,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2457,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14619:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14619:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2459,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14635:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2458,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14635:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14618:30:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2461,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14649:0:11"
            },
            "scope": 3023,
            "src": "14600:832:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2572,
              "nodeType": "Block",
              "src": "15649:344:11",
              "statements": [
                {
                  "assignments": [
                    2527
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2527,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2573,
                      "src": "15659:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2526,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "15659:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2531,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2528,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "15669:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2530,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2529,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2520,
                      "src": "15678:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15669:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15659:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2532,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2527,
                        "src": "15783:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2534,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "15783:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2536,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2527,
                            "src": "15798:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2537,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1687,
                          "src": "15798:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2538,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1629,
                          "src": "15807:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2535,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1891,
                        "src": "15794:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 2539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15794:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15783:33:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2541,
                  "nodeType": "ExpressionStatement",
                  "src": "15783:33:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2547,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15844:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15844:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15853:4:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2542,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15826:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "15826:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "15826:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15826:32:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2551,
                  "nodeType": "ExpressionStatement",
                  "src": "15826:32:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2553,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15888:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2554,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15895:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2555,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15895:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15895:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15895:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2552,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "15869:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15869:41:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2559,
                  "nodeType": "ExpressionStatement",
                  "src": "15869:41:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2561,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15935:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2562,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15942:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2563,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15942:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15942:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2565,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15942:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2566,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15958:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15958:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2568,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15967:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "15967:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2560,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1665,
                      "src": "15920:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 2570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15920:66:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2571,
                  "nodeType": "ExpressionStatement",
                  "src": "15920:66:11"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 2573,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2523,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2520,
                    "src": "15642:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2522,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "15632:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15632:16:11"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2520,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "15617:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2519,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15617:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15616:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15649:0:11"
            },
            "scope": 3023,
            "src": "15592:401:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2607,
              "nodeType": "Block",
              "src": "16270:157:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2583,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2577,
                      "src": "16284:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16296:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16284:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2587,
                  "nodeType": "IfStatement",
                  "src": "16280:24:11",
                  "trueBody": {
                    "id": 2586,
                    "nodeType": "Throw",
                    "src": "16299:5:11"
                  }
                },
                {
                  "assignments": [
                    2589
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2589,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2608,
                      "src": "16315:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2588,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16315:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2593,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2590,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16325:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2592,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2591,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2575,
                      "src": "16334:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16325:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16315:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2599,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16366:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2594,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2589,
                          "src": "16350:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2597,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "16350:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "16350:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16350:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2601,
                  "nodeType": "ExpressionStatement",
                  "src": "16350:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2603,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2575,
                        "src": "16404:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2604,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16411:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2602,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "16385:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16385:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2606,
                  "nodeType": "ExpressionStatement",
                  "src": "16385:35:11"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 2608,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2580,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2575,
                    "src": "16263:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2581,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2579,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16253:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16253:16:11"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2575,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16220:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16220:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2577,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16235:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16235:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16219:33:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16270:0:11"
            },
            "scope": 3023,
            "src": "16202:225:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2680,
              "nodeType": "Block",
              "src": "16684:368:11",
              "statements": [
                {
                  "assignments": [
                    2617
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2617,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16694:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2616,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16694:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2621,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2618,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16704:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2620,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2619,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2610,
                      "src": "16713:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16704:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16694:25:11"
                },
                {
                  "assignments": [
                    2623
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2623,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16729:17:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2622,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "16729:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2626,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2624,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2617,
                      "src": "16749:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry storage pointer"
                      }
                    },
                    "id": 2625,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1683,
                    "src": "16749:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16729:26:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2641,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2627,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "16769:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2628,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2617,
                            "src": "16775:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2629,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "registrationDate",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1685,
                          "src": "16775:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2630,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16796:7:11",
                          "subdenomination": "years",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "1"
                        },
                        "src": "16775:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16769:34:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2635,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "16817:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2633,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "16807:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 2634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "16807:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 2636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16807:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2638,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "16838:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16830:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16830:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "16807:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16769:74:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2643,
                  "nodeType": "IfStatement",
                  "src": "16765:85:11",
                  "trueBody": {
                    "id": 2642,
                    "nodeType": "Throw",
                    "src": "16845:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2644,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16861:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2646,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "16861:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16871:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16861:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2649,
                  "nodeType": "ExpressionStatement",
                  "src": "16861:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2650,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16882:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "16882:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16897:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16882:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2655,
                  "nodeType": "ExpressionStatement",
                  "src": "16882:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2656,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16908:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2658,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "16908:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16922:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2659,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "16917:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16917:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16908:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2663,
                  "nodeType": "ExpressionStatement",
                  "src": "16908:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2665,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "16955:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2664,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "16935:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16935:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2667,
                  "nodeType": "ExpressionStatement",
                  "src": "16935:26:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 2671,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16994:4:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2668,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2623,
                        "src": "16971:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2670,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "16971:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16971:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2673,
                  "nodeType": "ExpressionStatement",
                  "src": "16971:28:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2675,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "17022:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2676,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2617,
                          "src": "17029:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "17029:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2674,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1671,
                      "src": "17009:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17009:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2679,
                  "nodeType": "ExpressionStatement",
                  "src": "17009:28:11"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 2681,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2613,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2610,
                    "src": "16677:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2614,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2612,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16667:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16667:16:11"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2610,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2681,
                  "src": "16652:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2609,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16652:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16651:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2615,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16684:0:11"
            },
            "scope": 3023,
            "src": "16631:421:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2792,
              "nodeType": "Block",
              "src": "17522:635:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2694,
                          "name": "unhashedName",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2683,
                          "src": "17543:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 2693,
                        "name": "strlen",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1994,
                        "src": "17536:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (string memory) view returns (uint256)"
                        }
                      },
                      "id": 2695,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17536:20:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "36",
                      "id": 2696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17559:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_6_by_1",
                        "typeString": "int_const 6"
                      },
                      "value": "6"
                    },
                    "src": "17536:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2699,
                  "nodeType": "IfStatement",
                  "src": "17532:35:11",
                  "trueBody": {
                    "id": 2698,
                    "nodeType": "Throw",
                    "src": "17562:5:11"
                  }
                },
                {
                  "assignments": [
                    2701
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2701,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17577:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2700,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17577:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2705,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2703,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17597:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2702,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17592:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17592:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17577:33:11"
                },
                {
                  "assignments": [
                    2707
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2707,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17621:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2706,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "17621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2711,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2708,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "17631:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2710,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2709,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2701,
                      "src": "17640:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "17631:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17621:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2713,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "17676:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2712,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "17656:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17656:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2715,
                  "nodeType": "ExpressionStatement",
                  "src": "17656:25:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2717,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2707,
                            "src": "17704:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2718,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1683,
                          "src": "17704:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17696:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17696:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2720,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17715:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17696:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2762,
                  "nodeType": "IfStatement",
                  "src": "17692:310:11",
                  "trueBody": {
                    "id": 2761,
                    "nodeType": "Block",
                    "src": "17718:284:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2722,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2707,
                              "src": "17833:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2724,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1687,
                            "src": "17833:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2726,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17847:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2727,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17847:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2728,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1629,
                                "src": "17856:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2725,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1891,
                              "src": "17843:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) view returns (uint256)"
                              }
                            },
                            "id": 2729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17843:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17833:32:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2731,
                        "nodeType": "ExpressionStatement",
                        "src": "17833:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2740,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2737,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17897:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2738,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17897:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 2739,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "17905:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "17897:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2741,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17908:5:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2732,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17879:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2735,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17879:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2736,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1541,
                            "src": "17879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 2742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17879:35:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2743,
                        "nodeType": "ExpressionStatement",
                        "src": "17879:35:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2749,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "17944:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2750,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "17944:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2744,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17928:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2747,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17928:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2748,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1496,
                            "src": "17928:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address) external"
                            }
                          },
                          "id": 2751,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17928:27:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2752,
                        "nodeType": "ExpressionStatement",
                        "src": "17928:27:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 2758,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17986:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2753,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17969:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2756,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17969:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2757,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "17969:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17969:22:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2760,
                        "nodeType": "ExpressionStatement",
                        "src": "17969:22:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2764,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "18028:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2765,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "18034:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2766,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18048:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2767,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "18048:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2768,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18057:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2769,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "18057:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2763,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1681,
                      "src": "18012:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 2770,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18012:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2771,
                  "nodeType": "ExpressionStatement",
                  "src": "18012:64:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2772,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18087:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2774,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "18087:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18097:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18087:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2777,
                  "nodeType": "ExpressionStatement",
                  "src": "18087:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2778,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18108:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2780,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "18108:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18123:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18108:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2783,
                  "nodeType": "ExpressionStatement",
                  "src": "18108:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2784,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18134:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2786,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "18134:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2788,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18148:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2787,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "18143:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18143:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "18134:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2791,
                  "nodeType": "ExpressionStatement",
                  "src": "18134:16:11"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 2793,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2687,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17495:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2686,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17490:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17490:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2689,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1617,
                      "src": "17510:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 2690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "17510:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 2691,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2685,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1763,
                  "src": "17482:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$1617_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "17482:39:11"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2683,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 2793,
                  "src": "17461:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2682,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "17461:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17460:21:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2692,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17522:0:11"
            },
            "scope": 3023,
            "src": "17437:720:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2827,
              "nodeType": "Block",
              "src": "18813:180:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2799,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18827:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18827:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18844:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18827:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2804,
                  "nodeType": "IfStatement",
                  "src": "18823:29:11",
                  "trueBody": {
                    "id": 2803,
                    "nodeType": "Throw",
                    "src": "18847:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2806,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18872:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2811,
                          "indexExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2807,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2796,
                                "src": "18879:6:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2808,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "18879:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2809,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18895:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "18879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18872:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2805,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "18866:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 2812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18866:32:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2813,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "18902:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18902:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "18866:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2817,
                  "nodeType": "IfStatement",
                  "src": "18862:57:11",
                  "trueBody": {
                    "id": 2816,
                    "nodeType": "Throw",
                    "src": "18914:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2819,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18950:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18950:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2821,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18966:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "18950:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2823,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18969:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2824,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "18977:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2818,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2933,
                      "src": "18930:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 2825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18930:56:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2826,
                  "nodeType": "ExpressionStatement",
                  "src": "18930:56:11"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [sha3('foo'), sha3('bar')].",
            "id": 2828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2796,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2828,
                  "src": "18795:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2794,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "18795:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2795,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "18795:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18794:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2798,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18813:0:11"
            },
            "scope": 3023,
            "src": "18776:217:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2873,
              "nodeType": "Block",
              "src": "19052:253:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2835,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "19076:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2833,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "19066:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "19066:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2836,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19066:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2838,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "19097:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "19089:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2839,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19089:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "19066:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2872,
                  "nodeType": "IfStatement",
                  "src": "19062:237:11",
                  "trueBody": {
                    "id": 2871,
                    "nodeType": "Block",
                    "src": "19104:195:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2844,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19138:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2845,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19148:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2847,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3473,
                                  "src": "19163:4:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                ],
                                "id": 2846,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "19155:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2848,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19155:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2841,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19118:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2843,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3366,
                            "src": "19118:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,bytes32,address) external"
                            }
                          },
                          "id": 2849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19118:51:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2850,
                        "nodeType": "ExpressionStatement",
                        "src": "19118:51:11"
                      },
                      {
                        "assignments": [
                          2851
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2851,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 2874,
                            "src": "19183:8:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": null,
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2856,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2853,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19199:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2854,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19209:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2852,
                            "name": "sha3",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3432,
                            "src": "19194:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 2855,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19194:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "19183:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2860,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19245:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2861,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19251:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2857,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19229:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3373,
                            "src": "19229:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2862,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19229:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2863,
                        "nodeType": "ExpressionStatement",
                        "src": "19229:24:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2867,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19280:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2868,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19286:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2864,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19267:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2866,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3357,
                            "src": "19267:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19267:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2870,
                        "nodeType": "ExpressionStatement",
                        "src": "19267:21:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2874,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2830,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 2874,
                  "src": "19028:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2829,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19028:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19027:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2832,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19052:0:11"
            },
            "scope": 3023,
            "src": "18999:306:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2932,
              "nodeType": "Block",
              "src": "19391:404:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2887,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19459:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2888,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2879,
                          "src": "19465:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2890,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2889,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2876,
                          "src": "19472:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19465:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2892,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "19486:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "19478:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19478:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2884,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19439:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2886,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3366,
                      "src": "19439:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 2894,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19439:53:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2895,
                  "nodeType": "ExpressionStatement",
                  "src": "19439:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2896,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2881,
                      "src": "19502:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2898,
                          "name": "node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2881,
                          "src": "19514:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2899,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2879,
                            "src": "19520:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2901,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2900,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2876,
                            "src": "19527:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "19520:11:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2897,
                        "name": "sha3",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3432,
                        "src": "19509:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 2902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19509:23:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19502:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2904,
                  "nodeType": "ExpressionStatement",
                  "src": "19502:30:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2905,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2876,
                      "src": "19599:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2906,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19605:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19599:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2917,
                  "nodeType": "IfStatement",
                  "src": "19595:80:11",
                  "trueBody": {
                    "id": 2916,
                    "nodeType": "Block",
                    "src": "19608:67:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2911,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2909,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2876,
                                "src": "19642:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2910,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "19648:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "19642:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2912,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2879,
                              "src": "19651:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2913,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2881,
                              "src": "19659:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2908,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2933,
                            "src": "19622:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 2914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19622:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2915,
                        "nodeType": "ExpressionStatement",
                        "src": "19622:42:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2921,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19749:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19755:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2918,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19733:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2920,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3373,
                      "src": "19733:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19733:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2924,
                  "nodeType": "ExpressionStatement",
                  "src": "19733:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2928,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19780:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19786:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2925,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19767:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3357,
                      "src": "19767:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19767:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "19767:21:11"
                }
              ]
            },
            "documentation": null,
            "id": 2933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2876,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19340:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2875,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "19340:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2879,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19350:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2877,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "19350:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2878,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "19350:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2881,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19368:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2880,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19368:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19339:42:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2883,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19391:0:11"
            },
            "scope": 3023,
            "src": "19311:484:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3005,
              "nodeType": "Block",
              "src": "20088:486:11",
              "statements": [
                {
                  "assignments": [
                    2941
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2941,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20098:13:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2946,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2944,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "20124:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2942,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "20114:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3336,
                      "src": "20114:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 2945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20114:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20098:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2947,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2941,
                      "src": "20147:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2949,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "20168:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20160:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2950,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20160:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "20147:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2953,
                  "nodeType": "IfStatement",
                  "src": "20143:37:11",
                  "trueBody": {
                    "id": 2952,
                    "nodeType": "Throw",
                    "src": "20175:5:11"
                  }
                },
                {
                  "assignments": [
                    2955
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2955,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20219:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2954,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "20219:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2959,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2956,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "20229:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2958,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2957,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2935,
                      "src": "20238:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20229:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20219:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2965,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2941,
                        "src": "20274:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2960,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20254:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2963,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20254:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2964,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1508,
                      "src": "20254:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20254:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2967,
                  "nodeType": "ExpressionStatement",
                  "src": "20254:30:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2972,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2935,
                        "src": "20397:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2973,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20404:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2974,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20404:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2975,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20412:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2976,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "20412:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2969,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2941,
                            "src": "20362:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 2968,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "20352:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$3023_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 2970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20352:20:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$3023",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 2971,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3022,
                      "src": "20352:44:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$1596_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 2977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20352:79:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2978,
                  "nodeType": "ExpressionStatement",
                  "src": "20352:79:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2979,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20472:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2981,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "20472:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "20486:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2982,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "20481:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20481:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "20472:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2986,
                  "nodeType": "ExpressionStatement",
                  "src": "20472:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2987,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20498:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2989,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "20498:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20519:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20498:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2992,
                  "nodeType": "ExpressionStatement",
                  "src": "20498:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2993,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20530:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2995,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "20530:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20540:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20530:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "20530:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2999,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20551:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 3001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "20551:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3002,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20566:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20551:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3004,
                  "nodeType": "ExpressionStatement",
                  "src": "20551:16:11"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 3006,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2938,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2935,
                    "src": "20081:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2939,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2937,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "20071:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20071:16:11"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2936,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2935,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3006,
                  "src": "20056:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2934,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20056:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20055:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2940,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20088:0:11"
            },
            "scope": 3023,
            "src": "20028:546:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3021,
              "nodeType": "Block",
              "src": "21051:82:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3015,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3008,
                    "src": "21061:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3016,
                  "nodeType": "ExpressionStatement",
                  "src": "21061:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3017,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3010,
                    "src": "21067:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 3018,
                  "nodeType": "ExpressionStatement",
                  "src": "21067:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3019,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3012,
                    "src": "21073:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3020,
                  "nodeType": "ExpressionStatement",
                  "src": "21073:16:11"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 3022,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3008,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21003:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3007,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21003:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3010,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21017:9:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3009,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1596,
                    "src": "21017:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3012,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21028:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3011,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "21028:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21002:48:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 3014,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21051:0:11"
            },
            "scope": 3023,
            "src": "20970:163:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "2898:18238:11"
      }
    ],
    "src": "0:21137:11"
  },
  "legacyAST": {
    "absolutePath": "/Users/brett/Development/aragon/aragon-id/contracts/test/ens/Registrar.sol",
    "exportedSymbols": {
      "Deed": [
        1596
      ],
      "Registrar": [
        3023
      ]
    },
    "id": 3024,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1403,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:11"
      },
      {
        "absolutePath": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "file": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
        "id": 1404,
        "nodeType": "ImportDirective",
        "scope": 3024,
        "sourceUnit": 3408,
        "src": "388:54:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Deed to hold ether in exchange for ownership of a node\n@dev The deed can be controlled only by the registrar and can only send ether back to the owner.",
        "fullyImplemented": true,
        "id": 1596,
        "linearizedBaseContracts": [
          1596
        ],
        "name": "Deed",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1406,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "638:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1405,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "638:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1409,
            "name": "burn",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "668:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1407,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "668:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "307864656164",
              "id": 1408,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "692:6:11",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_57005_by_1",
                "typeString": "int_const 57005"
              },
              "value": "0xdead"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1411,
            "name": "creationDate",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "704:24:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1410,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "704:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1413,
            "name": "owner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "734:20:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1412,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "734:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1415,
            "name": "previousOwner",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "760:28:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 1414,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "760:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1417,
            "name": "value",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "794:17:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1416,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "794:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1421,
            "name": "OwnerChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1419,
                  "indexed": false,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1421,
                  "src": "836:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1418,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "835:18:11"
            },
            "src": "817:37:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1423,
            "name": "DeedClosed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1422,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "875:2:11"
            },
            "src": "859:19:11"
          },
          {
            "constant": false,
            "id": 1425,
            "name": "active",
            "nodeType": "VariableDeclaration",
            "scope": 1596,
            "src": "883:11:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 1424,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "883:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1434,
              "nodeType": "Block",
              "src": "924:62:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1430,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1427,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "938:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1428,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "938:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1429,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "952:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "938:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1432,
                  "nodeType": "IfStatement",
                  "src": "934:34:11",
                  "trueBody": {
                    "id": 1431,
                    "nodeType": "Throw",
                    "src": "963:5:11"
                  }
                },
                {
                  "id": 1433,
                  "nodeType": "PlaceholderStatement",
                  "src": "978:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1435,
            "name": "onlyRegistrar",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "924:0:11"
            },
            "src": "901:85:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1442,
              "nodeType": "Block",
              "src": "1012:46:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1438,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1026:7:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 1437,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1027:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1440,
                  "nodeType": "IfStatement",
                  "src": "1022:18:11",
                  "trueBody": {
                    "id": 1439,
                    "nodeType": "Throw",
                    "src": "1035:5:11"
                  }
                },
                {
                  "id": 1441,
                  "nodeType": "PlaceholderStatement",
                  "src": "1050:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1443,
            "name": "onlyActive",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1436,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1012:0:11"
            },
            "src": "992:66:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1470,
              "nodeType": "Block",
              "src": "1102:141:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1448,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1112:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1449,
                      "name": "_owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1445,
                      "src": "1120:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1112:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1451,
                  "nodeType": "ExpressionStatement",
                  "src": "1112:14:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1452,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1136:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1453,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1148:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1454,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1148:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1136:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1456,
                  "nodeType": "ExpressionStatement",
                  "src": "1136:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1457,
                      "name": "creationDate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1411,
                      "src": "1168:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1458,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3424,
                      "src": "1183:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1168:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1460,
                  "nodeType": "ExpressionStatement",
                  "src": "1168:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1461,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "1196:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 1462,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1205:4:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1196:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1464,
                  "nodeType": "ExpressionStatement",
                  "src": "1196:13:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1468,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1465,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1219:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1466,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "1227:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 1467,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1227:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1219:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1469,
                  "nodeType": "ExpressionStatement",
                  "src": "1219:17:11"
                }
              ]
            },
            "documentation": null,
            "id": 1471,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Deed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1445,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1471,
                  "src": "1078:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1444,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1078:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1077:16:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 1447,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1102:0:11"
            },
            "scope": 1596,
            "src": "1064:179:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1495,
              "nodeType": "Block",
              "src": "1299:193:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1478,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1313:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1325:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1313:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1482,
                  "nodeType": "IfStatement",
                  "src": "1309:24:11",
                  "trueBody": {
                    "id": 1481,
                    "nodeType": "Throw",
                    "src": "1328:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1483,
                      "name": "previousOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1415,
                      "src": "1343:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1484,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1359:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1343:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1486,
                  "nodeType": "ExpressionStatement",
                  "src": "1343:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1489,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1487,
                      "name": "owner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1413,
                      "src": "1437:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1488,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1473,
                      "src": "1445:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1437:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1490,
                  "nodeType": "ExpressionStatement",
                  "src": "1437:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1492,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1473,
                        "src": "1476:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1491,
                      "name": "OwnerChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1421,
                      "src": "1463:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 1493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1463:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1494,
                  "nodeType": "ExpressionStatement",
                  "src": "1463:22:11"
                }
              ]
            },
            "documentation": null,
            "id": 1496,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1476,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1475,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1285:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1285:13:11"
              }
            ],
            "name": "setOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1474,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1473,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1496,
                  "src": "1267:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1472,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1267:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1266:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1477,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1299:0:11"
            },
            "scope": 1596,
            "src": "1249:243:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1507,
              "nodeType": "Block",
              "src": "1556:41:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1503,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1406,
                      "src": "1566:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1504,
                      "name": "newRegistrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1498,
                      "src": "1578:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1566:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1506,
                  "nodeType": "ExpressionStatement",
                  "src": "1566:24:11"
                }
              ]
            },
            "documentation": null,
            "id": 1508,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1501,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1500,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1542:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1542:13:11"
              }
            ],
            "name": "setRegistrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1498,
                  "name": "newRegistrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 1508,
                  "src": "1520:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1520:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1519:22:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1502,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1556:0:11"
            },
            "scope": 1596,
            "src": "1498:99:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1540,
              "nodeType": "Block",
              "src": "1684:248:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1519,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1757:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1520,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1765:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1757:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1523,
                  "nodeType": "IfStatement",
                  "src": "1753:27:11",
                  "trueBody": {
                    "id": 1522,
                    "nodeType": "Throw",
                    "src": "1775:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1526,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1524,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1417,
                      "src": "1790:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1525,
                      "name": "newValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1510,
                      "src": "1798:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1790:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1527,
                  "nodeType": "ExpressionStatement",
                  "src": "1790:16:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1537,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "1864:36:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1530,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3471,
                                "src": "1876:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1531,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "balance",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1876:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1532,
                              "name": "newValue",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1510,
                              "src": "1891:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1876:23:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1528,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1413,
                            "src": "1865:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 1529,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "send",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1865:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) returns (bool)"
                          }
                        },
                        "id": 1534,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1865:35:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1536,
                      "name": "throwOnFailure",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1512,
                      "src": "1904:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1864:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1539,
                  "nodeType": "IfStatement",
                  "src": "1860:65:11",
                  "trueBody": {
                    "id": 1538,
                    "nodeType": "Throw",
                    "src": "1920:5:11"
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1541,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1515,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1514,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "1659:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1659:13:11"
              },
              {
                "arguments": null,
                "id": 1517,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1516,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "1673:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1673:10:11"
              }
            ],
            "name": "setBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1513,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1510,
                  "name": "newValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1623:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1509,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1623:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1512,
                  "name": "throwOnFailure",
                  "nodeType": "VariableDeclaration",
                  "scope": 1541,
                  "src": "1638:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1511,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1638:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1622:36:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1518,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1684:0:11"
            },
            "scope": 1596,
            "src": "1603:329:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1576,
              "nodeType": "Block",
              "src": "2151:152:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1550,
                      "name": "active",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1425,
                      "src": "2161:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 1551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2170:5:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2161:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1553,
                  "nodeType": "ExpressionStatement",
                  "src": "2161:14:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "2189:55:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1562,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 1558,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "31303030",
                                        "id": 1556,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2203:4:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1000_by_1",
                                          "typeString": "int_const 1000"
                                        },
                                        "value": "1000"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "-",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 1557,
                                        "name": "refundRatio",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1543,
                                        "src": "2210:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "2203:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 1559,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "2202:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1560,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3471,
                                    "src": "2225:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$1596",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1561,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "balance",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "2225:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2202:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 1563,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "2201:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "31303030",
                            "id": 1564,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2239:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1000_by_1",
                              "typeString": "int_const 1000"
                            },
                            "value": "1000"
                          },
                          "src": "2201:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 1554,
                          "name": "burn",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1409,
                          "src": "2191:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 1555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "send",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2191:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (uint256) returns (bool)"
                        }
                      },
                      "id": 1566,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2191:53:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1569,
                  "nodeType": "IfStatement",
                  "src": "2185:66:11",
                  "trueBody": {
                    "id": 1568,
                    "nodeType": "Throw",
                    "src": "2246:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1570,
                      "name": "DeedClosed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1423,
                      "src": "2261:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1571,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2261:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1572,
                  "nodeType": "ExpressionStatement",
                  "src": "2261:12:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 1573,
                      "name": "destroyDeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1595,
                      "src": "2283:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2283:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "2283:13:11"
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value\n     * @param refundRatio The amount*1/1000 to refund",
            "id": 1577,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 1546,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1545,
                  "name": "onlyRegistrar",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1435,
                  "src": "2126:13:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2126:13:11"
              },
              {
                "arguments": null,
                "id": 1548,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1547,
                  "name": "onlyActive",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1443,
                  "src": "2140:10:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2140:10:11"
              }
            ],
            "name": "closeDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1543,
                  "name": "refundRatio",
                  "nodeType": "VariableDeclaration",
                  "scope": 1577,
                  "src": "2108:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1542,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2108:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2107:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2151:0:11"
            },
            "scope": 1596,
            "src": "2089:214:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1594,
              "nodeType": "Block",
              "src": "2422:356:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1580,
                    "name": "active",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1425,
                    "src": "2436:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1582,
                  "nodeType": "IfStatement",
                  "src": "2432:17:11",
                  "trueBody": {
                    "id": 1581,
                    "nodeType": "Throw",
                    "src": "2444:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1585,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3471,
                          "src": "2714:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        },
                        "id": 1586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2714:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1583,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1413,
                        "src": "2703:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 1584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "send",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2703:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
                        "typeString": "function (uint256) returns (bool)"
                      }
                    },
                    "id": 1587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2703:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1593,
                  "nodeType": "IfStatement",
                  "src": "2699:73:11",
                  "trueBody": {
                    "id": 1592,
                    "nodeType": "Block",
                    "src": "2729:43:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1589,
                              "name": "burn",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1409,
                              "src": "2756:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 1588,
                            "name": "selfdestruct",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3430,
                            "src": "2743:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 1590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2743:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1591,
                        "nodeType": "ExpressionStatement",
                        "src": "2743:18:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Close a deed and refund a specified fraction of the bid value",
            "id": 1595,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "destroyDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1578,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2419:2:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1579,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2422:0:11"
            },
            "scope": 1596,
            "src": "2399:379:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "618:2162:11"
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          1596
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 3023,
        "linearizedBaseContracts": [
          3023
        ],
        "name": "Registrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1598,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2923:22:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_AbstractENS_$3407",
              "typeString": "contract AbstractENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 1597,
              "name": "AbstractENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3407,
              "src": "2923:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                "typeString": "contract AbstractENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1600,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2951:23:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1599,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "2951:7:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1604,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "2981:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
              "typeString": "mapping(bytes32 => struct Registrar.entry)"
            },
            "typeName": {
              "id": 1603,
              "keyType": {
                "id": 1601,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "2990:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "2981:26:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                "typeString": "mapping(bytes32 => struct Registrar.entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1602,
                "name": "entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1690,
                "src": "3001:5:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                  "typeString": "struct Registrar.entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1610,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3022:63:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 1609,
              "keyType": {
                "id": 1605,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "3031:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "3022:45:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 1608,
                "keyType": {
                  "id": 1606,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3050:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "3042:24:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 1607,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3061:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "Registrar.Mode",
            "id": 1617,
            "members": [
              {
                "id": 1611,
                "name": "Open",
                "nodeType": "EnumValue",
                "src": "3108:4:11"
              },
              {
                "id": 1612,
                "name": "Auction",
                "nodeType": "EnumValue",
                "src": "3114:7:11"
              },
              {
                "id": 1613,
                "name": "Owned",
                "nodeType": "EnumValue",
                "src": "3123:5:11"
              },
              {
                "id": 1614,
                "name": "Forbidden",
                "nodeType": "EnumValue",
                "src": "3130:9:11"
              },
              {
                "id": 1615,
                "name": "Reveal",
                "nodeType": "EnumValue",
                "src": "3141:6:11"
              },
              {
                "id": 1616,
                "name": "NotYetAvailable",
                "nodeType": "EnumValue",
                "src": "3149:15:11"
              }
            ],
            "name": "Mode",
            "nodeType": "EnumDefinition",
            "src": "3096:70:11"
          },
          {
            "constant": true,
            "id": 1620,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3172:43:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1618,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3172:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 1619,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3209:6:11",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1623,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3221:39:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1621,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3221:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 1622,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3252:8:11",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1626,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3266:45:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1624,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "3266:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 1625,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3304:7:11",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1629,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3318:35:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1627,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3318:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 1628,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "3343:10:11",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1631,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 3023,
            "src": "3359:27:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1630,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "3359:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1637,
            "name": "AuctionStarted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1633,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3414:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1632,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3414:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1635,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1637,
                  "src": "3436:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1634,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3436:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3413:45:11"
            },
            "src": "3393:66:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1645,
            "name": "NewBid",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1639,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3477:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1638,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3477:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1641,
                  "indexed": true,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3499:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1640,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3499:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1643,
                  "indexed": false,
                  "name": "deposit",
                  "nodeType": "VariableDeclaration",
                  "scope": 1645,
                  "src": "3523:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1642,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3476:60:11"
            },
            "src": "3464:73:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1655,
            "name": "BidRevealed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1647,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3560:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1646,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3560:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1649,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3582:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1648,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3582:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1651,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3605:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1650,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3605:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1653,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 1655,
                  "src": "3617:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1652,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3617:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3559:71:11"
            },
            "src": "3542:89:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1665,
            "name": "HashRegistered",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1657,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3657:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1656,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3657:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1659,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3679:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1658,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3679:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1661,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3702:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1660,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3702:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1663,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1665,
                  "src": "3714:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1662,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3714:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3656:80:11"
            },
            "src": "3636:101:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1671,
            "name": "HashReleased",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1667,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3761:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1666,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3761:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1669,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1671,
                  "src": "3783:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1668,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3783:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3760:34:11"
            },
            "src": "3742:53:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1681,
            "name": "HashInvalidated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1673,
                  "indexed": true,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3822:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1672,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3822:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1675,
                  "indexed": true,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3844:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1674,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3844:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1677,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3865:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1676,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3865:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1679,
                  "indexed": false,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1681,
                  "src": "3877:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1678,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3877:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3821:78:11"
            },
            "src": "3800:100:11"
          },
          {
            "canonicalName": "Registrar.entry",
            "id": 1690,
            "members": [
              {
                "constant": false,
                "id": 1683,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3929:9:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$1596",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1682,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1596,
                  "src": "3929:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1685,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3948:21:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1684,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3948:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1687,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3979:10:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1686,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3979:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1689,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 1690,
                "src": "3999:15:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1688,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "3999:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "entry",
            "nodeType": "StructDefinition",
            "scope": 3023,
            "src": "3906:115:11",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1747,
              "nodeType": "Block",
              "src": "4304:526:11",
              "statements": [
                {
                  "assignments": [
                    1697
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1697,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 1748,
                      "src": "4314:9:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1701,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1698,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "4326:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1700,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1699,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1692,
                      "src": "4335:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4326:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4314:27:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "4364:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1703,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1692,
                          "src": "4375:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1704,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "4382:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1702,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2010,
                        "src": "4365:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4365:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1711,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "4450:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1712,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1697,
                          "src": "4456:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1713,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "4456:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4450:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 1744,
                      "nodeType": "Block",
                      "src": "4668:156:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1734,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1731,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1697,
                                "src": "4686:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 1732,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1689,
                              "src": "4686:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1733,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4706:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "4686:21:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1742,
                            "nodeType": "Block",
                            "src": "4764:50:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1739,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4789:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1740,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4789:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1741,
                                "nodeType": "Return",
                                "src": "4782:17:11"
                              }
                            ]
                          },
                          "id": 1743,
                          "nodeType": "IfStatement",
                          "src": "4682:132:11",
                          "trueBody": {
                            "id": 1738,
                            "nodeType": "Block",
                            "src": "4709:49:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1735,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4734:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1736,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4734:9:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1737,
                                "nodeType": "Return",
                                "src": "4727:16:11"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 1745,
                    "nodeType": "IfStatement",
                    "src": "4446:378:11",
                    "trueBody": {
                      "id": 1730,
                      "nodeType": "Block",
                      "src": "4480:182:11",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1715,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3424,
                              "src": "4498:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1719,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1716,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1697,
                                  "src": "4504:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 1717,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1685,
                                "src": "4504:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1718,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1623,
                                "src": "4529:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "4504:37:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4498:43:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1728,
                            "nodeType": "Block",
                            "src": "4601:51:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1725,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4626:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1726,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4626:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1727,
                                "nodeType": "Return",
                                "src": "4619:18:11"
                              }
                            ]
                          },
                          "id": 1729,
                          "nodeType": "IfStatement",
                          "src": "4494:158:11",
                          "trueBody": {
                            "id": 1724,
                            "nodeType": "Block",
                            "src": "4543:52:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1721,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1617,
                                    "src": "4568:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 1722,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "4568:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$1617",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1696,
                                "id": 1723,
                                "nodeType": "Return",
                                "src": "4561:19:11"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 1746,
                  "nodeType": "IfStatement",
                  "src": "4360:464:11",
                  "trueBody": {
                    "id": 1710,
                    "nodeType": "Block",
                    "src": "4388:52:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1707,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1617,
                            "src": "4409:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4409:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$1617",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1696,
                        "id": 1709,
                        "nodeType": "Return",
                        "src": "4402:27:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1748,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1692,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4265:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4265:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4264:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1695,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1748,
                  "src": "4298:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1694,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4298:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4297:6:11"
            },
            "scope": 3023,
            "src": "4250:580:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1762,
              "nodeType": "Block",
              "src": "4881:61:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 1758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1755,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1750,
                          "src": "4901:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 1754,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "4895:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 1756,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4895:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1757,
                      "name": "_state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1752,
                      "src": "4911:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "4895:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1760,
                  "nodeType": "IfStatement",
                  "src": "4891:33:11",
                  "trueBody": {
                    "id": 1759,
                    "nodeType": "Throw",
                    "src": "4919:5:11"
                  }
                },
                {
                  "id": 1761,
                  "nodeType": "PlaceholderStatement",
                  "src": "4934:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1763,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1753,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1750,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4853:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1749,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4853:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1752,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 1763,
                  "src": "4868:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1751,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "4868:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4852:28:11"
            },
            "src": "4836:106:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1786,
              "nodeType": "Block",
              "src": "4982:111:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 1772,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1768,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1765,
                            "src": "5002:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1767,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "4996:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1769,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4996:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1770,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "5012:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 1771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Owned",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5012:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "4996:26:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1773,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "5026:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5026:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1775,
                                "name": "_entries",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1604,
                                "src": "5040:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                                  "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                                }
                              },
                              "id": 1777,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1776,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1765,
                                "src": "5049:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5040:15:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage",
                                "typeString": "struct Registrar.entry storage ref"
                              }
                            },
                            "id": 1778,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "5040:20:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "5040:26:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1780,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5040:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5026:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4996:72:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1784,
                  "nodeType": "IfStatement",
                  "src": "4992:83:11",
                  "trueBody": {
                    "id": 1783,
                    "nodeType": "Throw",
                    "src": "5070:5:11"
                  }
                },
                {
                  "id": 1785,
                  "nodeType": "PlaceholderStatement",
                  "src": "5085:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1787,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1766,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1765,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1787,
                  "src": "4967:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1764,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4967:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4966:15:11"
            },
            "src": "4948:145:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1810,
              "nodeType": "Block",
              "src": "5123:136:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 1797,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1789,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5137:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1790,
                          "name": "registryStarted",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1631,
                          "src": "5143:15:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5137:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1792,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3424,
                          "src": "5163:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1795,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1793,
                            "name": "registryStarted",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1631,
                            "src": "5169:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "34",
                            "id": 1794,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5187:7:11",
                            "subdenomination": "years",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_126144000_by_1",
                              "typeString": "int_const 126144000"
                            },
                            "value": "4"
                          },
                          "src": "5169:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5163:31:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "5137:57:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 1805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1800,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "5208:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1798,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "5198:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 1799,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "5198:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 1801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5198:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1803,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "5229:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 1802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5221:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5221:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "5198:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5137:97:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1808,
                  "nodeType": "IfStatement",
                  "src": "5133:108:11",
                  "trueBody": {
                    "id": 1807,
                    "nodeType": "Throw",
                    "src": "5236:5:11"
                  }
                },
                {
                  "id": 1809,
                  "nodeType": "PlaceholderStatement",
                  "src": "5251:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 1811,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1788,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5120:2:11"
            },
            "src": "5099:160:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1845,
              "nodeType": "Block",
              "src": "5348:124:11",
              "statements": [
                {
                  "assignments": [
                    1827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1827,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1846,
                      "src": "5358:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1826,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "5358:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1831,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1828,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "5368:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 1830,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1829,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1813,
                      "src": "5377:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5368:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5358:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1833,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1813,
                            "src": "5407:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1832,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1748,
                          "src": "5401:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5401:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1835,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5415:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1836,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "5415:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1837,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5423:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1838,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "5423:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1839,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5443:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1840,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "5443:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1841,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1827,
                          "src": "5452:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 1842,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1689,
                        "src": "5452:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1843,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5400:65:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$1617_$_t_contract$_Deed_$1596_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,contract Deed,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1825,
                  "id": 1844,
                  "nodeType": "Return",
                  "src": "5393:72:11"
                }
              ]
            },
            "documentation": null,
            "id": 1846,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1814,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1813,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5282:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1812,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5282:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5281:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1825,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1816,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5315:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$1617",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1815,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1617,
                    "src": "5315:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1818,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5321:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1817,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5321:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1820,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5330:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1819,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5330:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1822,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5336:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1821,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5336:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1824,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1846,
                  "src": "5342:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1823,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5342:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5314:33:11"
            },
            "scope": 3023,
            "src": "5265:207:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1872,
              "nodeType": "Block",
              "src": "5763:118:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1857,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1855,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1598,
                      "src": "5773:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1856,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1848,
                      "src": "5779:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_AbstractENS_$3407",
                        "typeString": "contract AbstractENS"
                      }
                    },
                    "src": "5773:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "id": 1858,
                  "nodeType": "ExpressionStatement",
                  "src": "5773:10:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1859,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1600,
                      "src": "5793:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1860,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1850,
                      "src": "5804:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "5793:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1862,
                  "nodeType": "ExpressionStatement",
                  "src": "5793:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1863,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "5823:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1864,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1852,
                          "src": "5841:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5854:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5841:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 1868,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "5871:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "5841:33:11",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 1867,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1852,
                        "src": "5858:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5823:51:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1871,
                  "nodeType": "ExpressionStatement",
                  "src": "5823:51:11"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 1873,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "Registrar",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1853,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1848,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5709:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_AbstractENS_$3407",
                    "typeString": "contract AbstractENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1847,
                    "name": "AbstractENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3407,
                    "src": "5709:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_AbstractENS_$3407",
                      "typeString": "contract AbstractENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1850,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5727:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1849,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5727:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1852,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1873,
                  "src": "5746:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1851,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "5746:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5708:54:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5763:0:11"
            },
            "scope": 3023,
            "src": "5690:191:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1890,
              "nodeType": "Block",
              "src": "6157:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1882,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6171:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1883,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6175:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6171:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1887,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1877,
                      "src": "6232:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1888,
                    "nodeType": "Return",
                    "src": "6225:8:11"
                  },
                  "id": 1889,
                  "nodeType": "IfStatement",
                  "src": "6167:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1885,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1875,
                      "src": "6197:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1881,
                    "id": 1886,
                    "nodeType": "Return",
                    "src": "6190:8:11"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 1891,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1875,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6104:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1874,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6104:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1877,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6112:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1876,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6112:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6103:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1881,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1880,
                  "name": "max",
                  "nodeType": "VariableDeclaration",
                  "scope": 1891,
                  "src": "6147:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1879,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6147:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6146:10:11"
            },
            "scope": 3023,
            "src": "6091:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1908,
              "nodeType": "Block",
              "src": "6516:83:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1900,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6530:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1901,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6534:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6530:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1905,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1895,
                      "src": "6591:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1906,
                    "nodeType": "Return",
                    "src": "6584:8:11"
                  },
                  "id": 1907,
                  "nodeType": "IfStatement",
                  "src": "6526:66:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1903,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1893,
                      "src": "6556:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 1899,
                    "id": 1904,
                    "nodeType": "Return",
                    "src": "6549:8:11"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 1909,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1896,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1893,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6463:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1892,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6463:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1895,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6471:6:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1894,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6471:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6462:16:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1898,
                  "name": "min",
                  "nodeType": "VariableDeclaration",
                  "scope": 1909,
                  "src": "6506:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1897,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6506:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6505:10:11"
            },
            "scope": 3023,
            "src": "6450:149:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1993,
              "nodeType": "Block",
              "src": "6834:766:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1916,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1911,
                    "src": "6844:1:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 1917,
                  "nodeType": "ExpressionStatement",
                  "src": "6844:1:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1919,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6962:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1918,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6962:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1920,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6962:8:11"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1922,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 1994,
                      "src": "6980:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1921,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "6980:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1923,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6980:8:11"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7021:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7032:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 1911,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7067:1:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 1922,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7050:3:11",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 1919,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "7071:3:11",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 1924,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "6998:99:11"
                },
                {
                  "body": {
                    "id": 1989,
                    "nodeType": "Block",
                    "src": "7131:443:11",
                    "statements": [
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1936,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 1994,
                            "src": "7145:7:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 1935,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "7145:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1937,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "7145:7:11"
                      },
                      {
                        "externalReferences": [
                          {
                            "ptr": {
                              "declaration": 1919,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7192:3:11",
                              "valueSize": 1
                            }
                          },
                          {
                            "b": {
                              "declaration": 1936,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "7177:1:11",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 1938,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "7166:54:11"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 1941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1939,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1936,
                            "src": "7222:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 1940,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7226:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "7222:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 1949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1947,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1936,
                              "src": "7283:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 1948,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7287:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "7283:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 1957,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1955,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1936,
                                "src": "7344:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 1956,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7348:4:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "7344:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 1965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 1963,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1936,
                                  "src": "7405:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 1964,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7409:4:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "7405:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 1973,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 1971,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1936,
                                    "src": "7466:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 1972,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7470:4:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "7466:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 1983,
                                  "nodeType": "Block",
                                  "src": "7523:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1981,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1979,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7541:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 1980,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7548:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "7541:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1982,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7541:8:11"
                                    }
                                  ]
                                },
                                "id": 1984,
                                "nodeType": "IfStatement",
                                "src": "7462:102:11",
                                "trueBody": {
                                  "id": 1978,
                                  "nodeType": "Block",
                                  "src": "7476:41:11",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1976,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 1974,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1919,
                                          "src": "7494:3:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 1975,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "7501:1:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "7494:8:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 1977,
                                      "nodeType": "ExpressionStatement",
                                      "src": "7494:8:11"
                                    }
                                  ]
                                }
                              },
                              "id": 1985,
                              "nodeType": "IfStatement",
                              "src": "7401:163:11",
                              "trueBody": {
                                "id": 1970,
                                "nodeType": "Block",
                                "src": "7415:41:11",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1968,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 1966,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1919,
                                        "src": "7433:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 1967,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7440:1:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "7433:8:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 1969,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7433:8:11"
                                  }
                                ]
                              }
                            },
                            "id": 1986,
                            "nodeType": "IfStatement",
                            "src": "7340:224:11",
                            "trueBody": {
                              "id": 1962,
                              "nodeType": "Block",
                              "src": "7354:41:11",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1960,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1958,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1919,
                                      "src": "7372:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1959,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "7379:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "7372:8:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 1961,
                                  "nodeType": "ExpressionStatement",
                                  "src": "7372:8:11"
                                }
                              ]
                            }
                          },
                          "id": 1987,
                          "nodeType": "IfStatement",
                          "src": "7279:285:11",
                          "trueBody": {
                            "id": 1954,
                            "nodeType": "Block",
                            "src": "7293:41:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1952,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1950,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1919,
                                    "src": "7311:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1951,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7318:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "7311:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1953,
                                "nodeType": "ExpressionStatement",
                                "src": "7311:8:11"
                              }
                            ]
                          }
                        },
                        "id": 1988,
                        "nodeType": "IfStatement",
                        "src": "7218:346:11",
                        "trueBody": {
                          "id": 1946,
                          "nodeType": "Block",
                          "src": "7232:41:11",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1944,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1942,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1919,
                                  "src": "7250:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1943,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7257:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "7250:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1945,
                              "nodeType": "ExpressionStatement",
                              "src": "7250:8:11"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1929,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1919,
                      "src": "7113:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 1930,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1922,
                      "src": "7119:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7113:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1990,
                  "initializationExpression": {
                    "assignments": [
                      1926
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 1926,
                        "name": "len",
                        "nodeType": "VariableDeclaration",
                        "scope": 1994,
                        "src": "7099:8:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 1925,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7099:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 1928,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7110:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7099:12:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 1933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7124:5:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 1932,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1926,
                        "src": "7124:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1934,
                    "nodeType": "ExpressionStatement",
                    "src": "7124:5:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "7094:480:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1991,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1926,
                    "src": "7590:3:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1915,
                  "id": 1992,
                  "nodeType": "Return",
                  "src": "7583:10:11"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 1994,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1912,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1911,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6791:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1910,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6791:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6790:10:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 1915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1914,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1994,
                  "src": "6828:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1913,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "6828:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6827:6:11"
            },
            "scope": 3023,
            "src": "6775:825:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2009,
              "nodeType": "Block",
              "src": "8009:58:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2007,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2003,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1998,
                      "src": "8026:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2005,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1996,
                          "src": "8054:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2004,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2033,
                        "src": "8039:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 2006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8039:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8026:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2002,
                  "id": 2008,
                  "nodeType": "Return",
                  "src": "8019:41:11"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n\n     * Each name will be assigned a random date in which its auction \ncan be started, from 0 to 8 weeks\n\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 2010,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1996,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7946:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1995,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7946:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1998,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7961:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1997,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "7961:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7945:32:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2001,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2010,
                  "src": "7996:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2000,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7996:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7995:14:11"
            },
            "scope": 3023,
            "src": "7927:140:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2032,
              "nodeType": "Block",
              "src": "8384:140:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2017,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1631,
                      "src": "8401:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2028,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2025,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2018,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1626,
                                  "src": "8421:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 2023,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 2020,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2012,
                                            "src": "8442:5:11",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 2019,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "8437:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 2021,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8437:11:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 2022,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "8452:3:11",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "8437:18:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 2024,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "8436:20:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "8421:35:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2026,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "8420:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 2027,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8461:3:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "8420:44:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 2029,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "8419:46:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8401:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2016,
                  "id": 2031,
                  "nodeType": "Return",
                  "src": "8394:71:11"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n\n     * @param _hash The hash to start an auction on",
            "id": 2033,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2012,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8335:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2011,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8335:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8334:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2016,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2015,
                  "name": "timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2033,
                  "src": "8368:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2014,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "8368:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8367:16:11"
            },
            "scope": 3023,
            "src": "8311:213:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2057,
              "nodeType": "Block",
              "src": "8780:126:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2042,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8804:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2040,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8794:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2041,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "8794:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2043,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8794:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2045,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "8825:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8817:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2046,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8817:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8794:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2056,
                  "nodeType": "IfStatement",
                  "src": "8790:101:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2051,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "8864:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2052,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2035,
                          "src": "8874:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2053,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2037,
                          "src": "8881:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2048,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "8844:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2050,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3366,
                        "src": "8844:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                          "typeString": "function (bytes32,bytes32,address) external"
                        }
                      },
                      "id": 2054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8844:47:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 2055,
                    "nodeType": "ExpressionStatement",
                    "src": "8844:47:11"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 2058,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2035,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8737:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2034,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8737:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2037,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2058,
                  "src": "8752:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2036,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8752:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8736:34:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2039,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8780:0:11"
            },
            "scope": 3023,
            "src": "8709:197:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2114,
              "nodeType": "Block",
              "src": "9090:354:11",
              "statements": [
                {
                  "assignments": [
                    2065
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2065,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9100:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2069,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2067,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9117:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2066,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "9111:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9111:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9100:23:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2070,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9137:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2071,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9145:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2072,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9145:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9137:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2075,
                  "nodeType": "IfStatement",
                  "src": "9133:33:11",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 2064,
                    "id": 2074,
                    "nodeType": "Return",
                    "src": "9159:7:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2076,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2065,
                      "src": "9179:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2077,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "9187:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2078,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Open",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9187:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "9179:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2081,
                  "nodeType": "IfStatement",
                  "src": "9175:28:11",
                  "trueBody": {
                    "id": 2080,
                    "nodeType": "Throw",
                    "src": "9198:5:11"
                  }
                },
                {
                  "assignments": [
                    2083
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2083,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 2115,
                      "src": "9214:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2082,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "9214:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2087,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2084,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "9233:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2086,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2085,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2060,
                      "src": "9242:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9233:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9214:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2088,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9258:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2090,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "9258:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2091,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "9288:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2092,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9294:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "9288:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9258:54:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2095,
                  "nodeType": "ExpressionStatement",
                  "src": "9258:54:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2096,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9322:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2098,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "9322:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2099,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9341:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9322:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2101,
                  "nodeType": "ExpressionStatement",
                  "src": "9322:20:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2102,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2083,
                        "src": "9352:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2104,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "9352:21:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2105,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9376:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9352:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2107,
                  "nodeType": "ExpressionStatement",
                  "src": "9352:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2109,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2060,
                        "src": "9402:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2110,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2083,
                          "src": "9409:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2111,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "9409:27:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2108,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1637,
                      "src": "9387:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9387:50:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2113,
                  "nodeType": "ExpressionStatement",
                  "src": "9387:50:11"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 2115,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [],
                "id": 2063,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2062,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1811,
                  "src": "9075:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9075:14:11"
              }
            ],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2060,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2115,
                  "src": "9060:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2059,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9060:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9059:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2064,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9090:0:11"
            },
            "scope": 3023,
            "src": "9038:406:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2140,
              "nodeType": "Block",
              "src": "10081:108:11",
              "statements": [
                {
                  "body": {
                    "id": 2138,
                    "nodeType": "Block",
                    "src": "10134:49:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2133,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2118,
                                "src": "10161:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2135,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2134,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2122,
                                "src": "10169:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10161:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2132,
                            "name": "startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2115,
                            "src": "10148:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 2136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10148:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2137,
                        "nodeType": "ExpressionStatement",
                        "src": "10148:24:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2125,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2122,
                      "src": "10108:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2126,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2118,
                        "src": "10112:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2127,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10112:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10108:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2139,
                  "initializationExpression": {
                    "assignments": [
                      2122
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2122,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2141,
                        "src": "10096:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 2121,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10096:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2124,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10105:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10096:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10128:4:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2129,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2122,
                        "src": "10128:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2131,
                    "nodeType": "ExpressionStatement",
                    "src": "10128:4:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "10091:92:11"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 2141,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2119,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2118,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2141,
                  "src": "10061:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2116,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10061:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2117,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10061:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10060:19:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10081:0:11"
            },
            "scope": 3023,
            "src": "10038:151:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2161,
              "nodeType": "Block",
              "src": "10586:54:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2155,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2143,
                        "src": "10608:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2156,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2145,
                        "src": "10614:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2157,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2147,
                        "src": "10621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2158,
                        "name": "salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "10628:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2154,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "10603:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10603:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2153,
                  "id": 2160,
                  "nodeType": "Return",
                  "src": "10596:37:11"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 2162,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10494:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10494:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2145,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10508:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10508:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10523:10:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "10523:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10535:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10535:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10493:55:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2152,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2162,
                  "src": "10567:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10567:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10566:19:11"
            },
            "scope": 3023,
            "src": "10478:162:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2215,
              "nodeType": "Block",
              "src": "11539:335:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 2168,
                              "name": "sealedBids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1610,
                              "src": "11561:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                              }
                            },
                            "id": 2171,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2169,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "11572:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2170,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "11572:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11561:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                              "typeString": "mapping(bytes32 => contract Deed)"
                            }
                          },
                          "id": 2173,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2172,
                            "name": "sealedBid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2164,
                            "src": "11584:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11561:33:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2167,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "11553:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2174,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11553:42:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2175,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11598:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11553:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2178,
                  "nodeType": "IfStatement",
                  "src": "11549:57:11",
                  "trueBody": {
                    "id": 2177,
                    "nodeType": "Throw",
                    "src": "11601:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2179,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3422,
                        "src": "11620:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 2180,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11620:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2181,
                      "name": "minPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1629,
                      "src": "11632:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11620:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2184,
                  "nodeType": "IfStatement",
                  "src": "11616:31:11",
                  "trueBody": {
                    "id": 2183,
                    "nodeType": "Throw",
                    "src": "11642:5:11"
                  }
                },
                {
                  "assignments": [
                    2186
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2186,
                      "name": "newBid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2216,
                      "src": "11712:11:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2185,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "11712:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2197,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2194,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11754:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2195,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11754:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2191,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11743:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11743:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2188,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "11727:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                                "typeString": "function (address) payable returns (contract Deed)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2187,
                                "name": "Deed",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 1596,
                                "src": "11731:4:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              }
                            }
                          ],
                          "id": 2189,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11726:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$",
                            "typeString": "function (address) payable returns (contract Deed)"
                          }
                        },
                        "id": 2190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11726:16:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value_$",
                          "typeString": "function (uint256) returns (function (address) payable returns (contract Deed))"
                        }
                      },
                      "id": 2193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11726:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_$returns$_t_contract$_Deed_$1596_$value",
                        "typeString": "function (address) payable returns (contract Deed)"
                      }
                    },
                    "id": 2196,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11726:39:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11712:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2198,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "11775:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2202,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2199,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "11786:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2200,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11786:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11775:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2203,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2201,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11798:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11775:33:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2204,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2186,
                      "src": "11811:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11775:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2206,
                  "nodeType": "ExpressionStatement",
                  "src": "11775:42:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2208,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2164,
                        "src": "11834:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2209,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11845:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11845:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2211,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "11857:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11857:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2207,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1645,
                      "src": "11827:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11827:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2214,
                  "nodeType": "ExpressionStatement",
                  "src": "11827:40:11"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 2216,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2164,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2216,
                  "src": "11512:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2163,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11512:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11511:19:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11539:0:11"
            },
            "scope": 3023,
            "src": "11496:378:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2232,
              "nodeType": "Block",
              "src": "12290:65:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2225,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2219,
                        "src": "12314:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      ],
                      "id": 2224,
                      "name": "startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2141,
                      "src": "12300:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 2226,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12300:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2227,
                  "nodeType": "ExpressionStatement",
                  "src": "12300:21:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2229,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2221,
                        "src": "12338:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2228,
                      "name": "newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2216,
                      "src": "12331:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2230,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12331:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2231,
                  "nodeType": "ExpressionStatement",
                  "src": "12331:17:11"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 2233,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2219,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12245:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2217,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "12245:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2218,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "12245:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2221,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2233,
                  "src": "12263:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2220,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12263:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12244:37:11"
            },
            "payable": true,
            "returnParameters": {
              "id": 2223,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12290:0:11"
            },
            "scope": 3023,
            "src": "12216:139:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2454,
              "nodeType": "Block",
              "src": "12649:1836:11",
              "statements": [
                {
                  "assignments": [
                    2243
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2243,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12659:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2242,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12659:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2251,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2245,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "12681:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2246,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12688:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12688:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2248,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12700:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2249,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2239,
                        "src": "12708:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2244,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2162,
                      "src": "12674:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) view returns (bytes32)"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12674:40:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12659:55:11"
                },
                {
                  "assignments": [
                    2253
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2253,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12724:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2252,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "12724:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2260,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2254,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "12735:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2257,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2255,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "12746:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "12746:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "12735:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2259,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2258,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2243,
                      "src": "12758:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12735:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12724:39:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2262,
                          "name": "bid",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2253,
                          "src": "12785:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12777:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12777:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2264,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12793:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12777:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2267,
                  "nodeType": "IfStatement",
                  "src": "12773:28:11",
                  "trueBody": {
                    "id": 2266,
                    "nodeType": "Throw",
                    "src": "12796:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2277,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2268,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "12812:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2272,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2269,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3422,
                            "src": "12823:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2270,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12823:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "12812:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2273,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2271,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2243,
                        "src": "12835:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12812:28:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2275,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12848:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2274,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "12843:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12843:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "12812:38:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2278,
                  "nodeType": "ExpressionStatement",
                  "src": "12812:38:11"
                },
                {
                  "assignments": [
                    2280
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2280,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12860:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2279,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "12860:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2284,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2281,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "12870:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2283,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2282,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2235,
                      "src": "12879:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12870:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12860:25:11"
                },
                {
                  "assignments": [
                    2286
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2286,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12895:10:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2285,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12895:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2293,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2288,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2237,
                        "src": "12912:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2289,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2253,
                            "src": "12920:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1417,
                          "src": "12920:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 2291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12920:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2287,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1909,
                      "src": "12908:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (uint256)"
                      }
                    },
                    "id": 2292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12908:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12895:37:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2297,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2286,
                        "src": "12957:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2298,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12964:4:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2294,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2253,
                        "src": "12942:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2296,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "12942:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12942:27:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2300,
                  "nodeType": "ExpressionStatement",
                  "src": "12942:27:11"
                },
                {
                  "assignments": [
                    2301
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2301,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 2455,
                      "src": "12980:16:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2305,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2303,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2235,
                        "src": "13005:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2302,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1748,
                      "src": "12999:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2304,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12999:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12980:31:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2306,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2301,
                      "src": "13025:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2307,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "13041:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2308,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13041:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "13025:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 2328,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2325,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2301,
                        "src": "13223:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2326,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1617,
                          "src": "13239:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 2327,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "13239:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$1617",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "13223:27:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 2342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2331,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13321:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2332,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1629,
                            "src": "13329:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13321:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2334,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2253,
                                "src": "13341:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2335,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "13341:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2336,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "13341:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2340,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2337,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "13362:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2338,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1685,
                              "src": "13362:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 2339,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1623,
                              "src": "13383:12:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "13362:33:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13341:54:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "13321:74:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2361,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2358,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2286,
                            "src": "13557:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2359,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2280,
                              "src": "13565:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2360,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1689,
                            "src": "13565:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "13557:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2409,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "14139:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2410,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2280,
                                "src": "14147:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2411,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1687,
                              "src": "14147:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "14139:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2448,
                            "nodeType": "Block",
                            "src": "14340:139:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2437,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14410:3:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2434,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14396:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2436,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14396:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2438,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14396:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2439,
                                "nodeType": "ExpressionStatement",
                                "src": "14396:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2441,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14440:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2442,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14447:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2443,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14447:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2444,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14459:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 2445,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14466:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 2440,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14428:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2446,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14428:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2447,
                                "nodeType": "ExpressionStatement",
                                "src": "14428:40:11"
                              }
                            ]
                          },
                          "id": 2449,
                          "nodeType": "IfStatement",
                          "src": "14135:344:11",
                          "trueBody": {
                            "id": 2433,
                            "nodeType": "Block",
                            "src": "14156:178:11",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2413,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2280,
                                      "src": "14222:1:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                        "typeString": "struct Registrar.entry storage pointer"
                                      }
                                    },
                                    "id": 2415,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1687,
                                    "src": "14222:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 2416,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14232:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "14222:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2418,
                                "nodeType": "ExpressionStatement",
                                "src": "14222:15:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 2422,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14265:3:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2419,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2253,
                                      "src": "14251:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 2421,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1577,
                                    "src": "14251:13:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 2423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14251:18:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2424,
                                "nodeType": "ExpressionStatement",
                                "src": "14251:18:11"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 2426,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2235,
                                      "src": "14295:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2427,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3422,
                                        "src": "14302:3:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 2428,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "14302:10:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 2429,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2286,
                                      "src": "14314:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2430,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "14321:1:11",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 2425,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1655,
                                    "src": "14283:11:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 2431,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "14283:40:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 2432,
                                "nodeType": "ExpressionStatement",
                                "src": "14283:40:11"
                              }
                            ]
                          }
                        },
                        "id": 2450,
                        "nodeType": "IfStatement",
                        "src": "13553:926:11",
                        "trueBody": {
                          "id": 2408,
                          "nodeType": "Block",
                          "src": "13579:550:11",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 2367,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2363,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13681:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2364,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13681:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 2362,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "13673:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 2365,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "13673:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2366,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13692:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "13673:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 2380,
                              "nodeType": "IfStatement",
                              "src": "13669:134:11",
                              "trueBody": {
                                "id": 2379,
                                "nodeType": "Block",
                                "src": "13695:108:11",
                                "statements": [
                                  {
                                    "assignments": [
                                      2369
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 2369,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 2455,
                                        "src": "13713:19:11",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$1596",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 2368,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 1596,
                                          "src": "13713:4:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 2372,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2370,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2280,
                                        "src": "13735:1:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                          "typeString": "struct Registrar.entry storage pointer"
                                        }
                                      },
                                      "id": 2371,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1683,
                                      "src": "13735:6:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$1596",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13713:28:11"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 2376,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "13784:3:11",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 2373,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2369,
                                          "src": "13759:14:11",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$1596",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 2375,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 1577,
                                        "src": "13759:24:11",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 2377,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "13759:29:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 2378,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13759:29:11"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2386,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2381,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13940:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2383,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1687,
                                  "src": "13940:7:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2384,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "13950:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2385,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "13950:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "13940:22:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2387,
                              "nodeType": "ExpressionStatement",
                              "src": "13940:22:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2392,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2388,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14018:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2390,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1689,
                                  "src": "14018:12:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2391,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "14033:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14018:20:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2393,
                              "nodeType": "ExpressionStatement",
                              "src": "14018:20:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2394,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2280,
                                    "src": "14052:1:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                      "typeString": "struct Registrar.entry storage pointer"
                                    }
                                  },
                                  "id": 2396,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1683,
                                  "src": "14052:6:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 2397,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "14061:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "14052:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2399,
                              "nodeType": "ExpressionStatement",
                              "src": "14052:12:11"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 2401,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2235,
                                    "src": "14090:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2402,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3422,
                                      "src": "14097:3:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 2403,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "14097:10:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 2404,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2286,
                                    "src": "14109:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2405,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "14116:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 2400,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1655,
                                  "src": "14078:11:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 2406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14078:40:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 2407,
                              "nodeType": "ExpressionStatement",
                              "src": "14078:40:11"
                            }
                          ]
                        }
                      },
                      "id": 2451,
                      "nodeType": "IfStatement",
                      "src": "13317:1162:11",
                      "trueBody": {
                        "id": 2357,
                        "nodeType": "Block",
                        "src": "13397:150:11",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 2346,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13478:3:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2343,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2253,
                                  "src": "13464:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$1596",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 2345,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1577,
                                "src": "13464:13:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 2347,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13464:18:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2348,
                            "nodeType": "ExpressionStatement",
                            "src": "13464:18:11"
                          },
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2350,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2235,
                                  "src": "13508:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2351,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3422,
                                    "src": "13515:3:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2352,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13515:10:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 2353,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2286,
                                  "src": "13527:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 2354,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "13534:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2349,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1655,
                                "src": "13496:11:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 2355,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13496:40:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 2356,
                            "nodeType": "ExpressionStatement",
                            "src": "13496:40:11"
                          }
                        ]
                      }
                    },
                    "id": 2452,
                    "nodeType": "IfStatement",
                    "src": "13219:1260:11",
                    "trueBody": {
                      "id": 2330,
                      "nodeType": "Block",
                      "src": "13252:59:11",
                      "statements": [
                        {
                          "id": 2329,
                          "nodeType": "Throw",
                          "src": "13295:5:11"
                        }
                      ]
                    }
                  },
                  "id": 2453,
                  "nodeType": "IfStatement",
                  "src": "13021:1458:11",
                  "trueBody": {
                    "id": 2324,
                    "nodeType": "Block",
                    "src": "13053:160:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 2313,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13146:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2310,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2253,
                              "src": "13132:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2312,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "13132:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13132:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2315,
                        "nodeType": "ExpressionStatement",
                        "src": "13132:16:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2317,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2235,
                              "src": "13174:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2318,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "13181:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2319,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "13181:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2320,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2286,
                              "src": "13193:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2321,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13200:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 2316,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1655,
                            "src": "13162:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 2322,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13162:40:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2323,
                        "nodeType": "ExpressionStatement",
                        "src": "13162:40:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 2455,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2235,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12606:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2234,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12606:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2237,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12621:11:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2236,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12621:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2239,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2455,
                  "src": "12634:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12634:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12605:43:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2241,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12649:0:11"
            },
            "scope": 3023,
            "src": "12587:1898:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2517,
              "nodeType": "Block",
              "src": "14649:783:11",
              "statements": [
                {
                  "assignments": [
                    2463
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2463,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2518,
                      "src": "14659:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2462,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "14659:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2469,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 2464,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "14670:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 2466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2465,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "14681:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "14670:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 2468,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2467,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2459,
                      "src": "14689:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "14670:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14659:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2471,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2463,
                            "src": "15126:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 2470,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "15118:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2472,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15118:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15134:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "15118:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2483,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2475,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "15151:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2480,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 2476,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2463,
                                "src": "15157:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$1596",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 2477,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1411,
                              "src": "15157:16:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 2478,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "15157:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 2479,
                            "name": "totalAuctionLength",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1620,
                            "src": "15178:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "15157:39:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 2481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15199:7:11",
                          "subdenomination": "weeks",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1209600_by_1",
                            "typeString": "int_const 1209600"
                          },
                          "value": "2"
                        },
                        "src": "15157:49:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15151:55:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15118:88:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2486,
                  "nodeType": "IfStatement",
                  "src": "15114:99:11",
                  "trueBody": {
                    "id": 2485,
                    "nodeType": "Throw",
                    "src": "15208:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2490,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3422,
                          "src": "15303:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "15303:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2487,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15290:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "15290:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15290:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2493,
                  "nodeType": "ExpressionStatement",
                  "src": "15290:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15338:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2494,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2463,
                        "src": "15324:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "15324:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15324:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2499,
                  "nodeType": "ExpressionStatement",
                  "src": "15324:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2500,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "15350:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2501,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2457,
                          "src": "15361:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15350:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$1596_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2504,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2502,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15369:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "15350:24:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15382:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2505,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "15377:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15377:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "15350:34:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2509,
                  "nodeType": "ExpressionStatement",
                  "src": "15350:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2459,
                        "src": "15406:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2512,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2457,
                        "src": "15412:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15420:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 2514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15423:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 2510,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1655,
                      "src": "15394:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 2515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15394:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2516,
                  "nodeType": "ExpressionStatement",
                  "src": "15394:31:11"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 2518,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2457,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14619:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14619:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2459,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 2518,
                  "src": "14635:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2458,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14635:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14618:30:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2461,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14649:0:11"
            },
            "scope": 3023,
            "src": "14600:832:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2572,
              "nodeType": "Block",
              "src": "15649:344:11",
              "statements": [
                {
                  "assignments": [
                    2527
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2527,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2573,
                      "src": "15659:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2526,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "15659:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2531,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2528,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "15669:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2530,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2529,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2520,
                      "src": "15678:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15669:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15659:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2532,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2527,
                        "src": "15783:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2534,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "15783:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2536,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2527,
                            "src": "15798:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2537,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1687,
                          "src": "15798:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2538,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1629,
                          "src": "15807:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 2535,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1891,
                        "src": "15794:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) view returns (uint256)"
                        }
                      },
                      "id": 2539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15794:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15783:33:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2541,
                  "nodeType": "ExpressionStatement",
                  "src": "15783:33:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2547,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15844:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15844:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 2549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15853:4:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2542,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15826:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "15826:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1541,
                      "src": "15826:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 2550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15826:32:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2551,
                  "nodeType": "ExpressionStatement",
                  "src": "15826:32:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2553,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15888:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2554,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15895:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2555,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15895:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15895:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15895:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2552,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "15869:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15869:41:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2559,
                  "nodeType": "ExpressionStatement",
                  "src": "15869:41:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2561,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2520,
                        "src": "15935:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2562,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2527,
                              "src": "15942:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2563,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1683,
                            "src": "15942:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$1596",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 2564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1413,
                          "src": "15942:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 2565,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15942:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2566,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15958:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "15958:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2568,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2527,
                          "src": "15967:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "15967:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2560,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1665,
                      "src": "15920:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 2570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15920:66:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2571,
                  "nodeType": "ExpressionStatement",
                  "src": "15920:66:11"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 2573,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2523,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2520,
                    "src": "15642:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2522,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "15632:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15632:16:11"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2520,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2573,
                  "src": "15617:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2519,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15617:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15616:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15649:0:11"
            },
            "scope": 3023,
            "src": "15592:401:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2607,
              "nodeType": "Block",
              "src": "16270:157:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2583,
                      "name": "newOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2577,
                      "src": "16284:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16296:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16284:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2587,
                  "nodeType": "IfStatement",
                  "src": "16280:24:11",
                  "trueBody": {
                    "id": 2586,
                    "nodeType": "Throw",
                    "src": "16299:5:11"
                  }
                },
                {
                  "assignments": [
                    2589
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2589,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2608,
                      "src": "16315:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2588,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16315:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2593,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2590,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16325:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2592,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2591,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2575,
                      "src": "16334:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16325:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16315:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2599,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16366:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2594,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2589,
                          "src": "16350:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2597,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "16350:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1496,
                      "src": "16350:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16350:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2601,
                  "nodeType": "ExpressionStatement",
                  "src": "16350:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2603,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2575,
                        "src": "16404:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2604,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2577,
                        "src": "16411:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 2602,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2058,
                      "src": "16385:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 2605,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16385:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2606,
                  "nodeType": "ExpressionStatement",
                  "src": "16385:35:11"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 2608,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2580,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2575,
                    "src": "16263:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2581,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2579,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16253:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16253:16:11"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2575,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16220:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16220:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2577,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2608,
                  "src": "16235:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16235:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16219:33:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16270:0:11"
            },
            "scope": 3023,
            "src": "16202:225:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2680,
              "nodeType": "Block",
              "src": "16684:368:11",
              "statements": [
                {
                  "assignments": [
                    2617
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2617,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16694:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2616,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "16694:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2621,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2618,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "16704:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2620,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2619,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2610,
                      "src": "16713:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16704:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16694:25:11"
                },
                {
                  "assignments": [
                    2623
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2623,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 2681,
                      "src": "16729:17:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2622,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1596,
                        "src": "16729:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2626,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2624,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2617,
                      "src": "16749:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry storage pointer"
                      }
                    },
                    "id": 2625,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1683,
                    "src": "16749:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16729:26:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 2641,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2632,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2627,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3424,
                        "src": "16769:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2631,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2628,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2617,
                            "src": "16775:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2629,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "registrationDate",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1685,
                          "src": "16775:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2630,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16796:7:11",
                          "subdenomination": "years",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_31536000_by_1",
                            "typeString": "int_const 31536000"
                          },
                          "value": "1"
                        },
                        "src": "16775:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16769:34:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 2640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2635,
                            "name": "rootNode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1600,
                            "src": "16817:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2633,
                            "name": "ens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1598,
                            "src": "16807:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_AbstractENS_$3407",
                              "typeString": "contract AbstractENS"
                            }
                          },
                          "id": 2634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3336,
                          "src": "16807:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                            "typeString": "function (bytes32) view external returns (address)"
                          }
                        },
                        "id": 2636,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16807:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2638,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "16838:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16830:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16830:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "16807:36:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16769:74:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2643,
                  "nodeType": "IfStatement",
                  "src": "16765:85:11",
                  "trueBody": {
                    "id": 2642,
                    "nodeType": "Throw",
                    "src": "16845:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2644,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16861:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2646,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "16861:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16871:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16861:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2649,
                  "nodeType": "ExpressionStatement",
                  "src": "16861:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2650,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16882:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "16882:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16897:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16882:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2655,
                  "nodeType": "ExpressionStatement",
                  "src": "16882:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2656,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2617,
                        "src": "16908:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2658,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "16908:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16922:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2659,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "16917:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16917:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16908:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2663,
                  "nodeType": "ExpressionStatement",
                  "src": "16908:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2665,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "16955:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2664,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "16935:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16935:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2667,
                  "nodeType": "ExpressionStatement",
                  "src": "16935:26:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 2671,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16994:4:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2668,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2623,
                        "src": "16971:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2670,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1577,
                      "src": "16971:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 2672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16971:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2673,
                  "nodeType": "ExpressionStatement",
                  "src": "16971:28:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2675,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2610,
                        "src": "17022:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2676,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2617,
                          "src": "17029:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2677,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "17029:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2674,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1671,
                      "src": "17009:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17009:28:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2679,
                  "nodeType": "ExpressionStatement",
                  "src": "17009:28:11"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 2681,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2613,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2610,
                    "src": "16677:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2614,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2612,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "16667:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "16667:16:11"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2610,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2681,
                  "src": "16652:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2609,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16652:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16651:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2615,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16684:0:11"
            },
            "scope": 3023,
            "src": "16631:421:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2792,
              "nodeType": "Block",
              "src": "17522:635:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2694,
                          "name": "unhashedName",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2683,
                          "src": "17543:12:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        ],
                        "id": 2693,
                        "name": "strlen",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1994,
                        "src": "17536:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (string memory) view returns (uint256)"
                        }
                      },
                      "id": 2695,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17536:20:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "36",
                      "id": 2696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17559:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_6_by_1",
                        "typeString": "int_const 6"
                      },
                      "value": "6"
                    },
                    "src": "17536:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2699,
                  "nodeType": "IfStatement",
                  "src": "17532:35:11",
                  "trueBody": {
                    "id": 2698,
                    "nodeType": "Throw",
                    "src": "17562:5:11"
                  }
                },
                {
                  "assignments": [
                    2701
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2701,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17577:12:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 2700,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17577:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2705,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2703,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17597:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2702,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17592:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2704,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17592:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17577:33:11"
                },
                {
                  "assignments": [
                    2707
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2707,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 2793,
                      "src": "17621:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2706,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "17621:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2711,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2708,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "17631:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2710,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2709,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2701,
                      "src": "17640:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "17631:14:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17621:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2713,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "17676:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2712,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2874,
                      "src": "17656:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 2714,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17656:25:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2715,
                  "nodeType": "ExpressionStatement",
                  "src": "17656:25:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2717,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2707,
                            "src": "17704:1:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                              "typeString": "struct Registrar.entry storage pointer"
                            }
                          },
                          "id": 2718,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1683,
                          "src": "17704:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$1596",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 2716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17696:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17696:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2720,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17715:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17696:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2762,
                  "nodeType": "IfStatement",
                  "src": "17692:310:11",
                  "trueBody": {
                    "id": 2761,
                    "nodeType": "Block",
                    "src": "17718:284:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 2730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 2722,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2707,
                              "src": "17833:1:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                "typeString": "struct Registrar.entry storage pointer"
                              }
                            },
                            "id": 2724,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1687,
                            "src": "17833:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2726,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17847:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2727,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17847:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 2728,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1629,
                                "src": "17856:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 2725,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1891,
                              "src": "17843:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) view returns (uint256)"
                              }
                            },
                            "id": 2729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17843:22:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17833:32:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 2731,
                        "nodeType": "ExpressionStatement",
                        "src": "17833:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2740,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2737,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2707,
                                  "src": "17897:1:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                    "typeString": "struct Registrar.entry storage pointer"
                                  }
                                },
                                "id": 2738,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1687,
                                "src": "17897:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 2739,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "17905:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "17897:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 2741,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17908:5:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2732,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17879:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2735,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17879:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2736,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1541,
                            "src": "17879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 2742,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17879:35:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2743,
                        "nodeType": "ExpressionStatement",
                        "src": "17879:35:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2749,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3422,
                                "src": "17944:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 2750,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "17944:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2744,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17928:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2747,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17928:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2748,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1496,
                            "src": "17928:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address) external"
                            }
                          },
                          "id": 2751,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17928:27:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2752,
                        "nodeType": "ExpressionStatement",
                        "src": "17928:27:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 2758,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "17986:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2753,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2707,
                                "src": "17969:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                                  "typeString": "struct Registrar.entry storage pointer"
                                }
                              },
                              "id": 2756,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1683,
                              "src": "17969:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$1596",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 2757,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1577,
                            "src": "17969:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 2759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17969:22:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2760,
                        "nodeType": "ExpressionStatement",
                        "src": "17969:22:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2764,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2701,
                        "src": "18028:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2765,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "18034:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2766,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18048:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2767,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1687,
                        "src": "18048:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2768,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2707,
                          "src": "18057:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2769,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "18057:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2763,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1681,
                      "src": "18012:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 2770,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18012:64:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2771,
                  "nodeType": "ExpressionStatement",
                  "src": "18012:64:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2772,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18087:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2774,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "18087:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18097:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18087:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2777,
                  "nodeType": "ExpressionStatement",
                  "src": "18087:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2778,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18108:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2780,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "18108:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18123:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18108:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2783,
                  "nodeType": "ExpressionStatement",
                  "src": "18108:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2784,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2707,
                        "src": "18134:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2786,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "18134:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2788,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18148:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2787,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "18143:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18143:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "18134:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2791,
                  "nodeType": "ExpressionStatement",
                  "src": "18134:16:11"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 2793,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2687,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2683,
                        "src": "17495:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 2686,
                      "name": "sha3",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3432,
                      "src": "17490:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                        "typeString": "function () pure returns (bytes32)"
                      }
                    },
                    "id": 2688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17490:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 2689,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1617,
                      "src": "17510:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 2690,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "17510:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 2691,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2685,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1763,
                  "src": "17482:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$1617_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "17482:39:11"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2683,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 2793,
                  "src": "17461:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2682,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "17461:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17460:21:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2692,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17522:0:11"
            },
            "scope": 3023,
            "src": "17437:720:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2827,
              "nodeType": "Block",
              "src": "18813:180:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2799,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18827:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18827:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18844:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18827:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2804,
                  "nodeType": "IfStatement",
                  "src": "18823:29:11",
                  "trueBody": {
                    "id": 2803,
                    "nodeType": "Throw",
                    "src": "18847:5:11"
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$1617",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2815,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2806,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18872:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2811,
                          "indexExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2810,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2807,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2796,
                                "src": "18879:6:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2808,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "18879:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 2809,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18895:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "18879:17:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18872:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2805,
                        "name": "state",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1748,
                        "src": "18866:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$1617_$",
                          "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                        }
                      },
                      "id": 2812,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18866:32:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2813,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1617,
                        "src": "18902:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$1617_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "18902:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$1617",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "18866:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2817,
                  "nodeType": "IfStatement",
                  "src": "18862:57:11",
                  "trueBody": {
                    "id": 2816,
                    "nodeType": "Throw",
                    "src": "18914:5:11"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2819,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2796,
                            "src": "18950:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "18950:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 2821,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18966:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "18950:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2823,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2796,
                        "src": "18969:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 2824,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "18977:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2818,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2933,
                      "src": "18930:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 2825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18930:56:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2826,
                  "nodeType": "ExpressionStatement",
                  "src": "18930:56:11"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [sha3('foo'), sha3('bar')].",
            "id": 2828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2796,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2828,
                  "src": "18795:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2794,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "18795:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2795,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "18795:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18794:18:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2798,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18813:0:11"
            },
            "scope": 3023,
            "src": "18776:217:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2873,
              "nodeType": "Block",
              "src": "19052:253:11",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2835,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1600,
                          "src": "19076:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2833,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1598,
                          "src": "19066:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_AbstractENS_$3407",
                            "typeString": "contract AbstractENS"
                          }
                        },
                        "id": 2834,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3336,
                        "src": "19066:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2836,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19066:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2838,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "19097:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "19089:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2839,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19089:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "19066:36:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2872,
                  "nodeType": "IfStatement",
                  "src": "19062:237:11",
                  "trueBody": {
                    "id": 2871,
                    "nodeType": "Block",
                    "src": "19104:195:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2844,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19138:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2845,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19148:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2847,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3473,
                                  "src": "19163:4:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_Registrar_$3023",
                                    "typeString": "contract Registrar"
                                  }
                                ],
                                "id": 2846,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "19155:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2848,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19155:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2841,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19118:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2843,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3366,
                            "src": "19118:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,bytes32,address) external"
                            }
                          },
                          "id": 2849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19118:51:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2850,
                        "nodeType": "ExpressionStatement",
                        "src": "19118:51:11"
                      },
                      {
                        "assignments": [
                          2851
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2851,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 2874,
                            "src": "19183:8:11",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": null,
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2856,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2853,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1600,
                              "src": "19199:8:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2854,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2830,
                              "src": "19209:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2852,
                            "name": "sha3",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3432,
                            "src": "19194:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                              "typeString": "function () pure returns (bytes32)"
                            }
                          },
                          "id": 2855,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19194:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "19183:32:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2860,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19245:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2861,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19251:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2857,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19229:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3373,
                            "src": "19229:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2862,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19229:24:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2863,
                        "nodeType": "ExpressionStatement",
                        "src": "19229:24:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2867,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2851,
                              "src": "19280:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2868,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "19286:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2864,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1598,
                              "src": "19267:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_AbstractENS_$3407",
                                "typeString": "contract AbstractENS"
                              }
                            },
                            "id": 2866,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3357,
                            "src": "19267:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19267:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2870,
                        "nodeType": "ExpressionStatement",
                        "src": "19267:21:11"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2874,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2830,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 2874,
                  "src": "19028:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2829,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19028:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19027:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2832,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19052:0:11"
            },
            "scope": 3023,
            "src": "18999:306:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2932,
              "nodeType": "Block",
              "src": "19391:404:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2887,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19459:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2888,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2879,
                          "src": "19465:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2890,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2889,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2876,
                          "src": "19472:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19465:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2892,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3473,
                            "src": "19486:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Registrar_$3023",
                              "typeString": "contract Registrar"
                            }
                          ],
                          "id": 2891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "19478:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19478:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2884,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19439:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2886,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3366,
                      "src": "19439:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,bytes32,address) external"
                      }
                    },
                    "id": 2894,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19439:53:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2895,
                  "nodeType": "ExpressionStatement",
                  "src": "19439:53:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2896,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2881,
                      "src": "19502:4:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2898,
                          "name": "node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2881,
                          "src": "19514:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 2899,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2879,
                            "src": "19520:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 2901,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 2900,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2876,
                            "src": "19527:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "19520:11:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2897,
                        "name": "sha3",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3432,
                        "src": "19509:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
                          "typeString": "function () pure returns (bytes32)"
                        }
                      },
                      "id": 2902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19509:23:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19502:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2904,
                  "nodeType": "ExpressionStatement",
                  "src": "19502:30:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2905,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2876,
                      "src": "19599:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2906,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19605:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19599:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2917,
                  "nodeType": "IfStatement",
                  "src": "19595:80:11",
                  "trueBody": {
                    "id": 2916,
                    "nodeType": "Block",
                    "src": "19608:67:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2911,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2909,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2876,
                                "src": "19642:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2910,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "19648:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "19642:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2912,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2879,
                              "src": "19651:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2913,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2881,
                              "src": "19659:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2908,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2933,
                            "src": "19622:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 2914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19622:42:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2915,
                        "nodeType": "ExpressionStatement",
                        "src": "19622:42:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2921,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19749:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19755:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2918,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19733:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2920,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3373,
                      "src": "19733:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2923,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19733:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2924,
                  "nodeType": "ExpressionStatement",
                  "src": "19733:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2928,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2881,
                        "src": "19780:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 2929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19786:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2925,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "19767:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2927,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3357,
                      "src": "19767:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19767:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2931,
                  "nodeType": "ExpressionStatement",
                  "src": "19767:21:11"
                }
              ]
            },
            "documentation": null,
            "id": 2933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2876,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19340:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2875,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "19340:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2879,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19350:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2877,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "19350:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2878,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "19350:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2881,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2933,
                  "src": "19368:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2880,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19368:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19339:42:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2883,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19391:0:11"
            },
            "scope": 3023,
            "src": "19311:484:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3005,
              "nodeType": "Block",
              "src": "20088:486:11",
              "statements": [
                {
                  "assignments": [
                    2941
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2941,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20098:13:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": null,
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2946,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2944,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1600,
                        "src": "20124:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2942,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1598,
                        "src": "20114:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_AbstractENS_$3407",
                          "typeString": "contract AbstractENS"
                        }
                      },
                      "id": 2943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3336,
                      "src": "20114:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 2945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20114:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20098:35:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2947,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2941,
                      "src": "20147:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2949,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3473,
                          "src": "20168:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Registrar_$3023",
                            "typeString": "contract Registrar"
                          }
                        ],
                        "id": 2948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "20160:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2950,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20160:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "20147:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2953,
                  "nodeType": "IfStatement",
                  "src": "20143:37:11",
                  "trueBody": {
                    "id": 2952,
                    "nodeType": "Throw",
                    "src": "20175:5:11"
                  }
                },
                {
                  "assignments": [
                    2955
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2955,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 3006,
                      "src": "20219:7:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                        "typeString": "struct Registrar.entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2954,
                        "name": "entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1690,
                        "src": "20219:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2959,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2956,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1604,
                      "src": "20229:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_entry_$1690_storage_$",
                        "typeString": "mapping(bytes32 => struct Registrar.entry storage ref)"
                      }
                    },
                    "id": 2958,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2957,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2935,
                      "src": "20238:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20229:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_entry_$1690_storage",
                      "typeString": "struct Registrar.entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20219:25:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2965,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2941,
                        "src": "20274:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2960,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20254:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2963,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20254:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 2964,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1508,
                      "src": "20254:19:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 2966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20254:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2967,
                  "nodeType": "ExpressionStatement",
                  "src": "20254:30:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2972,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2935,
                        "src": "20397:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2973,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20404:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2974,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1683,
                        "src": "20404:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2975,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2955,
                          "src": "20412:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                            "typeString": "struct Registrar.entry storage pointer"
                          }
                        },
                        "id": 2976,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1685,
                        "src": "20412:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$1596",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2969,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2941,
                            "src": "20362:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 2968,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3023,
                          "src": "20352:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$3023_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 2970,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20352:20:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$3023",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 2971,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3022,
                      "src": "20352:44:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$1596_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 2977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20352:79:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2978,
                  "nodeType": "ExpressionStatement",
                  "src": "20352:79:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2985,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2979,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20472:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2981,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1683,
                      "src": "20472:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 2983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "20486:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 2982,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1596,
                        "src": "20481:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$1596_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 2984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20481:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$1596",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "20472:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2986,
                  "nodeType": "ExpressionStatement",
                  "src": "20472:16:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2987,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20498:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2989,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1685,
                      "src": "20498:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2990,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20519:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20498:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2992,
                  "nodeType": "ExpressionStatement",
                  "src": "20498:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2993,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20530:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 2995,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1687,
                      "src": "20530:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20540:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20530:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2998,
                  "nodeType": "ExpressionStatement",
                  "src": "20530:11:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2999,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2955,
                        "src": "20551:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_entry_$1690_storage_ptr",
                          "typeString": "struct Registrar.entry storage pointer"
                        }
                      },
                      "id": 3001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1689,
                      "src": "20551:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3002,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20566:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20551:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3004,
                  "nodeType": "ExpressionStatement",
                  "src": "20551:16:11"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 3006,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 2938,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2935,
                    "src": "20081:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 2939,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2937,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1787,
                  "src": "20071:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20071:16:11"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2936,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2935,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3006,
                  "src": "20056:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2934,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20056:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20055:15:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 2940,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20088:0:11"
            },
            "scope": 3023,
            "src": "20028:546:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3021,
              "nodeType": "Block",
              "src": "21051:82:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3015,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3008,
                    "src": "21061:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 3016,
                  "nodeType": "ExpressionStatement",
                  "src": "21061:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3017,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3010,
                    "src": "21067:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 3018,
                  "nodeType": "ExpressionStatement",
                  "src": "21067:4:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3019,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3012,
                    "src": "21073:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3020,
                  "nodeType": "ExpressionStatement",
                  "src": "21073:16:11"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 3022,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3008,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21003:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3007,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21003:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3010,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21017:9:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$1596",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3009,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1596,
                    "src": "21017:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$1596",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3012,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 3022,
                  "src": "21028:21:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3011,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "21028:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21002:48:11"
            },
            "payable": false,
            "returnParameters": {
              "id": 3014,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21051:0:11"
            },
            "scope": 3023,
            "src": "20970:163:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3024,
        "src": "2898:18238:11"
      }
    ],
    "src": "0:21137:11"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2020-01-30T18:28:02.821Z"
}