{
  "contractName": "ClockAuctionBase",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "ownerCut",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "nonFungibleContract",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "startingPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "endingPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "duration",
          "type": "uint256"
        }
      ],
      "name": "AuctionCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "totalPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "winner",
          "type": "address"
        }
      ],
      "name": "AuctionSuccessful",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "AuctionCancelled",
      "type": "event"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610103806100206000396000f30060806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166383b5ff8b81146056578063dd1b7a0f14607a575b348015605357600080fd5b50005b348015606157600080fd5b50606860b5565b60408051918252519081900360200190f35b348015608557600080fd5b50608c60bb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a723058205f2d2726d3f0a949fda0bb632db83744d91ac32d37165ecfb5272b0fa91725950029",
  "deployedBytecode": "0x60806040526004361060485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166383b5ff8b81146056578063dd1b7a0f14607a575b348015605357600080fd5b50005b348015606157600080fd5b50606860b5565b60408051918252519081900360200190f35b348015608557600080fd5b50608c60bb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a723058205f2d2726d3f0a949fda0bb632db83744d91ac32d37165ecfb5272b0fa91725950029",
  "sourceMap": "401:9740:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:9740:15;;;;;;;",
  "deployedSourceMap": "401:9740:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:9740:15;;1114:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:23:15;;;;;;;;;;;;;;;;;;;;949:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;949:33:15;;;;;;;;;;;;;;;;;;;;;;;1114:23;;;;:::o;949:33::-;;;;;;:::o",
  "source": "/* solium-disable */\n/**\n *  @title Auction Core\n *  @author dapperlabs (https://github.com/dapperlabs) \n *  This code was taken from https://github.com/dapperlabs at \n *  https://github.com/dapperlabs/cryptokitties-bounty and is NOT kleros code.\n */\npragma solidity ^0.4.18;\n\nimport \"../ERC721.sol\";\n\n/// @title Auction Core\n/// @dev Contains models, variables, and internal methods for the auction.\ncontract ClockAuctionBase {\n\n    // Represents an auction on an NFT\n    struct Auction {\n        // Current owner of NFT\n        address seller;\n        // Price (in wei) at beginning of auction\n        uint128 startingPrice;\n        // Price (in wei) at end of auction\n        uint128 endingPrice;\n        // Duration (in seconds) of auction\n        uint64 duration;\n        // Time when auction started\n        // NOTE: 0 if this auction has been concluded\n        uint64 startedAt;\n    }\n\n    // Reference to contract tracking NFT ownership\n    ERC721 public nonFungibleContract;\n\n    // Cut owner takes on each auction, measured in basis points (1/100 of a percent).\n    // Values 0-10,000 map to 0%-100%\n    uint256 public ownerCut;\n\n    // Map from token ID to their corresponding auction.\n    mapping (uint256 => Auction) tokenIdToAuction;\n\n    event AuctionCreated(uint256 tokenId, uint256 startingPrice, uint256 endingPrice, uint256 duration);\n    event AuctionSuccessful(uint256 tokenId, uint256 totalPrice, address winner);\n    event AuctionCancelled(uint256 tokenId);\n\n    /// @dev DON'T give me your money.\n    function() external {}\n\n    // Modifiers to check that inputs can be safely stored with a certain\n    // number of bits. We use constants and multiple modifiers to save gas.\n    modifier canBeStoredWith64Bits(uint256 _value) {\n        require(_value <= 18446744073709551615);\n        _;\n    }\n\n    modifier canBeStoredWith128Bits(uint256 _value) {\n        require(_value < 340282366920938463463374607431768211455);\n        _;\n    }\n\n    /// @dev Returns true if the claimant owns the token.\n    /// @param _claimant - Address claiming to own the token.\n    /// @param _tokenId - ID of token whose ownership to verify.\n    function _owns(address _claimant, uint256 _tokenId) internal view returns (bool) {\n        return (nonFungibleContract.ownerOf(_tokenId) == _claimant);\n    }\n\n    /// @dev Escrows the NFT, assigning ownership to this contract.\n    /// Throws if the escrow fails.\n    /// @param _owner - Current owner address of token to escrow.\n    /// @param _tokenId - ID of token whose approval to verify.\n    function _escrow(address _owner, uint256 _tokenId) internal {\n        // it will throw if transfer fails\n        nonFungibleContract.transferFrom(_owner, this, _tokenId);\n    }\n\n    /// @dev Transfers an NFT owned by this contract to another address.\n    /// Returns true if the transfer succeeds.\n    /// @param _receiver - Address to transfer NFT to.\n    /// @param _tokenId - ID of token to transfer.\n    function _transfer(address _receiver, uint256 _tokenId) internal {\n        // it will throw if transfer fails\n        nonFungibleContract.transfer(_receiver, _tokenId);\n    }\n\n    /// @dev Adds an auction to the list of open auctions. Also fires the\n    ///  AuctionCreated event.\n    /// @param _tokenId The ID of the token to be put on auction.\n    /// @param _auction Auction to add.\n    function _addAuction(uint256 _tokenId, Auction _auction) internal {\n        // Require that all auctions have a duration of\n        // at least one minute. (Keeps our math from getting hairy!)\n        require(_auction.duration >= 1 minutes);\n\n        tokenIdToAuction[_tokenId] = _auction;\n        \n        emit AuctionCreated(\n            uint256(_tokenId),\n            uint256(_auction.startingPrice),\n            uint256(_auction.endingPrice),\n            uint256(_auction.duration)\n        );\n    }\n\n    /// @dev Cancels an auction unconditionally.\n    function _cancelAuction(uint256 _tokenId, address _seller) internal {\n        _removeAuction(_tokenId);\n        _transfer(_seller, _tokenId);\n        emit AuctionCancelled(_tokenId);\n    }\n\n    /// @dev Computes the price and transfers winnings.\n    /// Does NOT transfer ownership of token.\n    function _bid(uint256 _tokenId, uint256 _bidAmount)\n        internal\n        returns (uint256)\n    {\n        // Get a reference to the auction struct\n        Auction storage auction = tokenIdToAuction[_tokenId];\n\n        // Explicitly check that this auction is currently live.\n        // (Because of how Ethereum mappings work, we can't just count\n        // on the lookup above failing. An invalid _tokenId will just\n        // return an auction object that is all zeros.)\n        require(_isOnAuction(auction));\n\n        // Check that the incoming bid is higher than the current\n        // price\n        uint256 price = _currentPrice(auction);\n        require(_bidAmount >= price);\n\n        // Grab a reference to the seller before the auction struct\n        // gets deleted.\n        address seller = auction.seller;\n\n        // The bid is good! Remove the auction before sending the fees\n        // to the sender so we can't have a reentrancy attack.\n        _removeAuction(_tokenId);\n\n        // Transfer proceeds to seller (if there are any!)\n        if (price > 0) {\n            //  Calculate the auctioneer's cut.\n            // (NOTE: _computeCut() is guaranteed to return a\n            //  value <= price, so this subtraction can't go negative.)\n            uint256 auctioneerCut = _computeCut(price);\n            uint256 sellerProceeds = price - auctioneerCut;\n\n            // NOTE: Doing a transfer() in the middle of a complex\n            // method like this is generally discouraged because of\n            // reentrancy attacks and DoS attacks if the seller is\n            // a contract with an invalid fallback function. We explicitly\n            // guard against reentrancy attacks by removing the auction\n            // before calling transfer(), and the only thing the seller\n            // can DoS is the sale of their own asset! (And if it's an\n            // accident, they can call cancelAuction(). )\n            seller.transfer(sellerProceeds);\n        }\n\n        // Tell the world!\n        emit AuctionSuccessful(_tokenId, price, msg.sender);\n\n        return price;\n    }\n\n    /// @dev Removes an auction from the list of open auctions.\n    /// @param _tokenId - ID of NFT on auction.\n    function _removeAuction(uint256 _tokenId) internal {\n        delete tokenIdToAuction[_tokenId];\n    }\n\n    /// @dev Returns true if the NFT is on auction.\n    /// @param _auction - Auction to check.\n    function _isOnAuction(Auction storage _auction) internal view returns (bool) {\n        return (_auction.startedAt > 0);\n    }\n\n    /// @dev Returns current price of an NFT on auction. Broken into two\n    ///  functions (this one, that computes the duration from the auction\n    ///  structure, and the other that does the price computation) so we\n    ///  can easily test that the price computation works correctly.\n    function _currentPrice(Auction storage _auction)\n        internal\n        view\n        returns (uint256)\n    {\n        uint256 secondsPassed = 0;\n        \n        // A bit of insurance against negative values (or wraparound).\n        // Probably not necessary (since Ethereum guarnatees that the\n        // now variable doesn't ever go backwards).\n        if (now > _auction.startedAt) {\n            secondsPassed = now - _auction.startedAt;\n        }\n\n        return _computeCurrentPrice(\n            _auction.startingPrice,\n            _auction.endingPrice,\n            _auction.duration,\n            secondsPassed\n        );\n    }\n\n    /// @dev Computes the current price of an auction. Factored out\n    ///  from _currentPrice so we can run extensive unit tests.\n    ///  When testing, make this function public and turn on\n    ///  `Current price computation` test suite.\n    function _computeCurrentPrice(\n        uint256 _startingPrice,\n        uint256 _endingPrice,\n        uint256 _duration,\n        uint256 _secondsPassed\n    )\n        internal\n        pure\n        returns (uint256)\n    {\n        // NOTE: We don't use SafeMath (or similar) in this function because\n        //  all of our public functions carefully cap the maximum values for\n        //  time (at 64-bits) and currency (at 128-bits). _duration is\n        //  also known to be non-zero (see the require() statement in\n        //  _addAuction())\n        if (_secondsPassed >= _duration) {\n            // We've reached the end of the dynamic pricing portion\n            // of the auction, just return the end price.\n            return _endingPrice;\n        } else {\n            // Starting price can be higher than ending price (and often is!), so\n            // this delta can be negative.\n            int256 totalPriceChange = int256(_endingPrice) - int256(_startingPrice);\n            \n            // This multiplication can't overflow, _secondsPassed will easily fit within\n            // 64-bits, and totalPriceChange will easily fit within 128-bits, their product\n            // will always fit within 256-bits.\n            int256 currentPriceChange = totalPriceChange * int256(_secondsPassed) / int256(_duration);\n            \n            // currentPriceChange can be negative, but if so, will have a magnitude\n            // less that _startingPrice. Thus, this result will always end up positive.\n            int256 currentPrice = int256(_startingPrice) + currentPriceChange;\n            \n            return uint256(currentPrice);\n        }\n    }\n\n    /// @dev Computes owner's cut of a sale.\n    /// @param _price - Sale price of NFT.\n    function _computeCut(uint256 _price) internal view returns (uint256) {\n        // NOTE: We don't use SafeMath (or similar) in this function because\n        //  all of our entry functions carefully cap the maximum values for\n        //  currency (at 128-bits), and ownerCut <= 10000 (see the require()\n        //  statement in the ClockAuction constructor). The result of this\n        //  function is always guaranteed to be <= _price.\n        return _price * ownerCut / 10000;\n    }\n\n}\n",
  "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuctionBase.sol",
  "ast": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuctionBase.sol",
    "exportedSymbols": {
      "ClockAuctionBase": [
        6091
      ]
    },
    "id": 6092,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5706,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "251:24:15"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/ERC721.sol",
        "file": "../ERC721.sol",
        "id": 5707,
        "nodeType": "ImportDirective",
        "scope": 6092,
        "sourceUnit": 6436,
        "src": "277:23:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Auction Core\n @dev Contains models, variables, and internal methods for the auction.",
        "fullyImplemented": true,
        "id": 6091,
        "linearizedBaseContracts": [
          6091
        ],
        "name": "ClockAuctionBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "ClockAuctionBase.Auction",
            "id": 5718,
            "members": [
              {
                "constant": false,
                "id": 5709,
                "name": "seller",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "530:14:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 5708,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "530:7:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5711,
                "name": "startingPrice",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "604:21:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint128",
                  "typeString": "uint128"
                },
                "typeName": {
                  "id": 5710,
                  "name": "uint128",
                  "nodeType": "ElementaryTypeName",
                  "src": "604:7:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5713,
                "name": "endingPrice",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "679:19:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint128",
                  "typeString": "uint128"
                },
                "typeName": {
                  "id": 5712,
                  "name": "uint128",
                  "nodeType": "ElementaryTypeName",
                  "src": "679:7:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5715,
                "name": "duration",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "752:15:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 5714,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "752:6:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5717,
                "name": "startedAt",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "868:16:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 5716,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "868:6:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Auction",
            "nodeType": "StructDefinition",
            "scope": 6091,
            "src": "473:418:15",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 5720,
            "name": "nonFungibleContract",
            "nodeType": "VariableDeclaration",
            "scope": 6091,
            "src": "949:33:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ERC721_$6435",
              "typeString": "contract ERC721"
            },
            "typeName": {
              "contractScope": null,
              "id": 5719,
              "name": "ERC721",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6435,
              "src": "949:6:15",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC721_$6435",
                "typeString": "contract ERC721"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 5722,
            "name": "ownerCut",
            "nodeType": "VariableDeclaration",
            "scope": 6091,
            "src": "1114:23:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5721,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1114:7:15",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 5726,
            "name": "tokenIdToAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6091,
            "src": "1201:45:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
              "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction)"
            },
            "typeName": {
              "id": 5725,
              "keyType": {
                "id": 5723,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1210:7:15",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1201:28:15",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction)"
              },
              "valueType": {
                "contractScope": null,
                "id": 5724,
                "name": "Auction",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 5718,
                "src": "1221:7:15",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                  "typeString": "struct ClockAuctionBase.Auction"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 5736,
            "name": "AuctionCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 5735,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5728,
                  "indexed": false,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1274:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5727,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1274:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5730,
                  "indexed": false,
                  "name": "startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1291:21:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1291:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5732,
                  "indexed": false,
                  "name": "endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1314:19:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1314:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5734,
                  "indexed": false,
                  "name": "duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1335:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5733,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1335:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1273:79:15"
            },
            "src": "1253:100:15"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 5744,
            "name": "AuctionSuccessful",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 5743,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5738,
                  "indexed": false,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5744,
                  "src": "1382:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5737,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1382:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5740,
                  "indexed": false,
                  "name": "totalPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5744,
                  "src": "1399:18:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1399:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5742,
                  "indexed": false,
                  "name": "winner",
                  "nodeType": "VariableDeclaration",
                  "scope": 5744,
                  "src": "1419:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5741,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1419:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1381:53:15"
            },
            "src": "1358:77:15"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 5748,
            "name": "AuctionCancelled",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 5747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5746,
                  "indexed": false,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5748,
                  "src": "1463:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5745,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1463:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1462:17:15"
            },
            "src": "1440:40:15"
          },
          {
            "body": {
              "id": 5751,
              "nodeType": "Block",
              "src": "1545:2:15",
              "statements": []
            },
            "documentation": "@dev DON'T give me your money.",
            "id": 5752,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5749,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1533:2:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5750,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1545:0:15"
            },
            "scope": 6091,
            "src": "1525:22:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5763,
              "nodeType": "Block",
              "src": "1750:67:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5759,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5757,
                          "name": "_value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5754,
                          "src": "1768:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3138343436373434303733373039353531363135",
                          "id": 5758,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1778:20:15",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_18446744073709551615_by_1",
                            "typeString": "int_const 18446744073709551615"
                          },
                          "value": "18446744073709551615"
                        },
                        "src": "1768:30:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5756,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1760:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5760,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1760:39:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5761,
                  "nodeType": "ExpressionStatement",
                  "src": "1760:39:15"
                },
                {
                  "id": 5762,
                  "nodeType": "PlaceholderStatement",
                  "src": "1809:1:15"
                }
              ]
            },
            "documentation": null,
            "id": 5764,
            "name": "canBeStoredWith64Bits",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5754,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 5764,
                  "src": "1734:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5753,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1734:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1733:16:15"
            },
            "src": "1703:114:15",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5775,
              "nodeType": "Block",
              "src": "1871:85:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5769,
                          "name": "_value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5766,
                          "src": "1889:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333430323832333636393230393338343633343633333734363037343331373638323131343535",
                          "id": 5770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1898:39:15",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
                            "typeString": "int_const 3402...(31 digits omitted)...1455"
                          },
                          "value": "340282366920938463463374607431768211455"
                        },
                        "src": "1889:48:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5768,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1881:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5772,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1881:57:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5773,
                  "nodeType": "ExpressionStatement",
                  "src": "1881:57:15"
                },
                {
                  "id": 5774,
                  "nodeType": "PlaceholderStatement",
                  "src": "1948:1:15"
                }
              ]
            },
            "documentation": null,
            "id": 5776,
            "name": "canBeStoredWith128Bits",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5767,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5766,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 5776,
                  "src": "1855:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5765,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1855:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1854:16:15"
            },
            "src": "1823:133:15",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5793,
              "nodeType": "Block",
              "src": "2228:76:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5790,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5787,
                              "name": "_tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5780,
                              "src": "2274:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5785,
                              "name": "nonFungibleContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5720,
                              "src": "2246:19:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC721_$6435",
                                "typeString": "contract ERC721"
                              }
                            },
                            "id": 5786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "ownerOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6395,
                            "src": "2246:27:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                              "typeString": "function (uint256) view external returns (address)"
                            }
                          },
                          "id": 5788,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2246:37:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5789,
                          "name": "_claimant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5778,
                          "src": "2287:9:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2246:50:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 5791,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2245:52:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 5784,
                  "id": 5792,
                  "nodeType": "Return",
                  "src": "2238:59:15"
                }
              ]
            },
            "documentation": "@dev Returns true if the claimant owns the token.\n @param _claimant - Address claiming to own the token.\n @param _tokenId - ID of token whose ownership to verify.",
            "id": 5794,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_owns",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5781,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5778,
                  "name": "_claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 5794,
                  "src": "2162:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5777,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2162:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5780,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5794,
                  "src": "2181:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5779,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2181:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2161:37:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5784,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5783,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5794,
                  "src": "2222:4:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5782,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2222:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2221:6:15"
            },
            "scope": 6091,
            "src": "2147:157:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5809,
              "nodeType": "Block",
              "src": "2604:116:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5804,
                        "name": "_owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5796,
                        "src": "2690:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5805,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20680,
                        "src": "2698:4:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ClockAuctionBase_$6091",
                          "typeString": "contract ClockAuctionBase"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5806,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5798,
                        "src": "2704:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_ClockAuctionBase_$6091",
                          "typeString": "contract ClockAuctionBase"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5801,
                        "name": "nonFungibleContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5720,
                        "src": "2657:19:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      },
                      "id": 5803,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6411,
                      "src": "2657:32:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256) external"
                      }
                    },
                    "id": 5807,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2657:56:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5808,
                  "nodeType": "ExpressionStatement",
                  "src": "2657:56:15"
                }
              ]
            },
            "documentation": "@dev Escrows the NFT, assigning ownership to this contract.\n Throws if the escrow fails.\n @param _owner - Current owner address of token to escrow.\n @param _tokenId - ID of token whose approval to verify.",
            "id": 5810,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_escrow",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5796,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 5810,
                  "src": "2561:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5795,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2561:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5798,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5810,
                  "src": "2577:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5797,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2577:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2560:34:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5800,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2604:0:15"
            },
            "scope": 6091,
            "src": "2544:176:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5824,
              "nodeType": "Block",
              "src": "3017:109:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5820,
                        "name": "_receiver",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5812,
                        "src": "3099:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5821,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5814,
                        "src": "3110:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5817,
                        "name": "nonFungibleContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5720,
                        "src": "3070:19:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      },
                      "id": 5819,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6418,
                      "src": "3070:28:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 5822,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3070:49:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5823,
                  "nodeType": "ExpressionStatement",
                  "src": "3070:49:15"
                }
              ]
            },
            "documentation": "@dev Transfers an NFT owned by this contract to another address.\n Returns true if the transfer succeeds.\n @param _receiver - Address to transfer NFT to.\n @param _tokenId - ID of token to transfer.",
            "id": 5825,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5815,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5812,
                  "name": "_receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 5825,
                  "src": "2971:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5811,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2971:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5814,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5825,
                  "src": "2990:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5813,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2990:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2970:37:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5816,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3017:0:15"
            },
            "scope": 6091,
            "src": "2952:174:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5863,
              "nodeType": "Block",
              "src": "3409:436:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 5836,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5833,
                            "name": "_auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5829,
                            "src": "3552:8:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                              "typeString": "struct ClockAuctionBase.Auction memory"
                            }
                          },
                          "id": 5834,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "duration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5715,
                          "src": "3552:17:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3573:9:15",
                          "subdenomination": "minutes",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_60_by_1",
                            "typeString": "int_const 60"
                          },
                          "value": "1"
                        },
                        "src": "3552:30:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3544:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5837,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3544:39:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5838,
                  "nodeType": "ExpressionStatement",
                  "src": "3544:39:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5843,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5839,
                        "name": "tokenIdToAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "3594:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                          "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                        }
                      },
                      "id": 5841,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5840,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5827,
                        "src": "3611:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3594:26:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage",
                        "typeString": "struct ClockAuctionBase.Auction storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5842,
                      "name": "_auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5829,
                      "src": "3623:8:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                        "typeString": "struct ClockAuctionBase.Auction memory"
                      }
                    },
                    "src": "3594:37:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "id": 5844,
                  "nodeType": "ExpressionStatement",
                  "src": "3594:37:15"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5847,
                            "name": "_tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5827,
                            "src": "3691:8:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5846,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3683:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5848,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3683:17:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5850,
                              "name": "_auction",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5829,
                              "src": "3722:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                                "typeString": "struct ClockAuctionBase.Auction memory"
                              }
                            },
                            "id": 5851,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "startingPrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5711,
                            "src": "3722:22:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          ],
                          "id": 5849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3714:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5852,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3714:31:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5854,
                              "name": "_auction",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5829,
                              "src": "3767:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                                "typeString": "struct ClockAuctionBase.Auction memory"
                              }
                            },
                            "id": 5855,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "endingPrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5713,
                            "src": "3767:20:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          ],
                          "id": 5853,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3759:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5856,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3759:29:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5858,
                              "name": "_auction",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5829,
                              "src": "3810:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                                "typeString": "struct ClockAuctionBase.Auction memory"
                              }
                            },
                            "id": 5859,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "duration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5715,
                            "src": "3810:17:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "id": 5857,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3802:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5860,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3802:26:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5845,
                      "name": "AuctionCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5736,
                      "src": "3655:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256,uint256)"
                      }
                    },
                    "id": 5861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3655:183:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5862,
                  "nodeType": "EmitStatement",
                  "src": "3650:188:15"
                }
              ]
            },
            "documentation": "@dev Adds an auction to the list of open auctions. Also fires the\n  AuctionCreated event.\n @param _tokenId The ID of the token to be put on auction.\n @param _auction Auction to add.",
            "id": 5864,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5830,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5827,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5864,
                  "src": "3364:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5826,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3364:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5829,
                  "name": "_auction",
                  "nodeType": "VariableDeclaration",
                  "scope": 5864,
                  "src": "3382:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                    "typeString": "struct ClockAuctionBase.Auction"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5828,
                    "name": "Auction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5718,
                    "src": "3382:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                      "typeString": "struct ClockAuctionBase.Auction"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3363:36:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5831,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3409:0:15"
            },
            "scope": 6091,
            "src": "3343:502:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5884,
              "nodeType": "Block",
              "src": "3968:120:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5872,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5866,
                        "src": "3993:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5871,
                      "name": "_removeAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5971,
                      "src": "3978:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3978:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5874,
                  "nodeType": "ExpressionStatement",
                  "src": "3978:24:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5876,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5868,
                        "src": "4022:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5877,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5866,
                        "src": "4031:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5875,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5825,
                      "src": "4012:9:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4012:28:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5879,
                  "nodeType": "ExpressionStatement",
                  "src": "4012:28:15"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5881,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5866,
                        "src": "4072:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5880,
                      "name": "AuctionCancelled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5748,
                      "src": "4055:16:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4055:26:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5883,
                  "nodeType": "EmitStatement",
                  "src": "4050:31:15"
                }
              ]
            },
            "documentation": "@dev Cancels an auction unconditionally.",
            "id": 5885,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_cancelAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5869,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5866,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5885,
                  "src": "3924:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5865,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3924:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5868,
                  "name": "_seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 5885,
                  "src": "3942:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5867,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3942:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3923:35:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5870,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3968:0:15"
            },
            "scope": 6091,
            "src": "3900:188:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5959,
              "nodeType": "Block",
              "src": "4295:1996:15",
              "statements": [
                {
                  "assignments": [
                    5895
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5895,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5960,
                      "src": "4354:23:15",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5894,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "4354:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5899,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5896,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "4380:16:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5898,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5897,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5887,
                      "src": "4397:8:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4380:26:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4354:52:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5902,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5895,
                            "src": "4700:7:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5901,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "4687:12:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4687:21:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5900,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4679:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4679:30:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5905,
                  "nodeType": "ExpressionStatement",
                  "src": "4679:30:15"
                },
                {
                  "assignments": [
                    5907
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5907,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 5960,
                      "src": "4803:13:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5906,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4803:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5911,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5909,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5895,
                        "src": "4833:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      ],
                      "id": 5908,
                      "name": "_currentPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6020,
                      "src": "4819:13:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 5910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4819:22:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4803:38:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5915,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5913,
                          "name": "_bidAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5889,
                          "src": "4859:10:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5914,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5907,
                          "src": "4873:5:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4859:19:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5912,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4851:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5916,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4851:28:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5917,
                  "nodeType": "ExpressionStatement",
                  "src": "4851:28:15"
                },
                {
                  "assignments": [
                    5919
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5919,
                      "name": "seller",
                      "nodeType": "VariableDeclaration",
                      "scope": 5960,
                      "src": "4983:14:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5918,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4983:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5922,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 5920,
                      "name": "auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5895,
                      "src": "5000:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction storage pointer"
                      }
                    },
                    "id": 5921,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "seller",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 5709,
                    "src": "5000:14:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4983:31:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5924,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5887,
                        "src": "5174:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5923,
                      "name": "_removeAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5971,
                      "src": "5159:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5159:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5926,
                  "nodeType": "ExpressionStatement",
                  "src": "5159:24:15"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5929,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5927,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5907,
                      "src": "5257:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5928,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5265:1:15",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5257:9:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5949,
                  "nodeType": "IfStatement",
                  "src": "5253:920:15",
                  "trueBody": {
                    "id": 5948,
                    "nodeType": "Block",
                    "src": "5268:905:15",
                    "statements": [
                      {
                        "assignments": [
                          5931
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5931,
                            "name": "auctioneerCut",
                            "nodeType": "VariableDeclaration",
                            "scope": 5960,
                            "src": "5464:21:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5930,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5464:7:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5935,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5933,
                              "name": "price",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5907,
                              "src": "5500:5:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5932,
                            "name": "_computeCut",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6090,
                            "src": "5488:11:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view returns (uint256)"
                            }
                          },
                          "id": 5934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5488:18:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5464:42:15"
                      },
                      {
                        "assignments": [
                          5937
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5937,
                            "name": "sellerProceeds",
                            "nodeType": "VariableDeclaration",
                            "scope": 5960,
                            "src": "5520:22:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5936,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5520:7:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5941,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5938,
                            "name": "price",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5907,
                            "src": "5545:5:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5939,
                            "name": "auctioneerCut",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5931,
                            "src": "5553:13:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5545:21:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5520:46:15"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5945,
                              "name": "sellerProceeds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5937,
                              "src": "6147:14:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5942,
                              "name": "seller",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5919,
                              "src": "6131:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 5944,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6131:15:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 5946,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6131:31:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5947,
                        "nodeType": "ExpressionStatement",
                        "src": "6131:31:15"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5951,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5887,
                        "src": "6233:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5952,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5907,
                        "src": "6243:5:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5953,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "6250:3:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5954,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6250:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5950,
                      "name": "AuctionSuccessful",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5744,
                      "src": "6215:17:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,uint256,address)"
                      }
                    },
                    "id": 5955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6215:46:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5956,
                  "nodeType": "EmitStatement",
                  "src": "6210:51:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5957,
                    "name": "price",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5907,
                    "src": "6279:5:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5893,
                  "id": 5958,
                  "nodeType": "Return",
                  "src": "6272:12:15"
                }
              ]
            },
            "documentation": "@dev Computes the price and transfers winnings.\n Does NOT transfer ownership of token.",
            "id": 5960,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_bid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5890,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5887,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5960,
                  "src": "4210:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5886,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4210:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5889,
                  "name": "_bidAmount",
                  "nodeType": "VariableDeclaration",
                  "scope": 5960,
                  "src": "4228:18:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5888,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4228:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4209:38:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5892,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5960,
                  "src": "4282:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5891,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4282:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4281:9:15"
            },
            "scope": 6091,
            "src": "4196:2095:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5970,
              "nodeType": "Block",
              "src": "6460:50:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "6470:33:15",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5965,
                        "name": "tokenIdToAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "6477:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                          "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                        }
                      },
                      "id": 5967,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5966,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5962,
                        "src": "6494:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6477:26:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage",
                        "typeString": "struct ClockAuctionBase.Auction storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5969,
                  "nodeType": "ExpressionStatement",
                  "src": "6470:33:15"
                }
              ]
            },
            "documentation": "@dev Removes an auction from the list of open auctions.\n @param _tokenId - ID of NFT on auction.",
            "id": 5971,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_removeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5962,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5971,
                  "src": "6433:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5961,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6433:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6432:18:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5964,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6460:0:15"
            },
            "scope": 6091,
            "src": "6409:101:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5984,
              "nodeType": "Block",
              "src": "6689:48:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 5981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5978,
                            "name": "_auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5973,
                            "src": "6707:8:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          },
                          "id": 5979,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startedAt",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5717,
                          "src": "6707:18:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6728:1:15",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6707:22:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 5982,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "6706:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 5977,
                  "id": 5983,
                  "nodeType": "Return",
                  "src": "6699:31:15"
                }
              ]
            },
            "documentation": "@dev Returns true if the NFT is on auction.\n @param _auction - Auction to check.",
            "id": 5985,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_isOnAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5973,
                  "name": "_auction",
                  "nodeType": "VariableDeclaration",
                  "scope": 5985,
                  "src": "6634:24:15",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                    "typeString": "struct ClockAuctionBase.Auction"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5972,
                    "name": "Auction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5718,
                    "src": "6634:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                      "typeString": "struct ClockAuctionBase.Auction"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6633:26:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5976,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5985,
                  "src": "6683:4:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5975,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6683:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6682:6:15"
            },
            "scope": 6091,
            "src": "6612:125:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6019,
              "nodeType": "Block",
              "src": "7141:524:15",
              "statements": [
                {
                  "assignments": [
                    5993
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5993,
                      "name": "secondsPassed",
                      "nodeType": "VariableDeclaration",
                      "scope": 6020,
                      "src": "7151:21:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5992,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7151:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5995,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 5994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "7175:1:15",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7151:25:15"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5999,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5996,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "7392:3:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5997,
                        "name": "_auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5987,
                        "src": "7398:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      },
                      "id": 5998,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startedAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5717,
                      "src": "7398:18:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "7392:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6008,
                  "nodeType": "IfStatement",
                  "src": "7388:95:15",
                  "trueBody": {
                    "id": 6007,
                    "nodeType": "Block",
                    "src": "7418:65:15",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6000,
                            "name": "secondsPassed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5993,
                            "src": "7432:13:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6004,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6001,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20641,
                              "src": "7448:3:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6002,
                                "name": "_auction",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5987,
                                "src": "7454:8:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                                  "typeString": "struct ClockAuctionBase.Auction storage pointer"
                                }
                              },
                              "id": 6003,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "startedAt",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5717,
                              "src": "7454:18:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "src": "7448:24:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7432:40:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6006,
                        "nodeType": "ExpressionStatement",
                        "src": "7432:40:15"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6010,
                          "name": "_auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5987,
                          "src": "7534:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 6011,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "startingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5711,
                        "src": "7534:22:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6012,
                          "name": "_auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5987,
                          "src": "7570:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 6013,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "endingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5713,
                        "src": "7570:20:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6014,
                          "name": "_auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5987,
                          "src": "7604:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 6015,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "duration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5715,
                        "src": "7604:17:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6016,
                        "name": "secondsPassed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5993,
                        "src": "7635:13:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6009,
                      "name": "_computeCurrentPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6076,
                      "src": "7500:20:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 6017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7500:158:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5991,
                  "id": 6018,
                  "nodeType": "Return",
                  "src": "7493:165:15"
                }
              ]
            },
            "documentation": "@dev Returns current price of an NFT on auction. Broken into two\n  functions (this one, that computes the duration from the auction\n  structure, and the other that does the price computation) so we\n  can easily test that the price computation works correctly.",
            "id": 6020,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_currentPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5988,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5987,
                  "name": "_auction",
                  "nodeType": "VariableDeclaration",
                  "scope": 6020,
                  "src": "7055:24:15",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                    "typeString": "struct ClockAuctionBase.Auction"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5986,
                    "name": "Auction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5718,
                    "src": "7055:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                      "typeString": "struct ClockAuctionBase.Auction"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7054:26:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5990,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6020,
                  "src": "7128:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5989,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7128:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7127:9:15"
            },
            "scope": 6091,
            "src": "7032:633:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6075,
              "nodeType": "Block",
              "src": "8130:1432:15",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6033,
                      "name": "_secondsPassed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6028,
                      "src": "8466:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6034,
                      "name": "_duration",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "8484:9:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8466:27:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6073,
                    "nodeType": "Block",
                    "src": "8671:885:15",
                    "statements": [
                      {
                        "assignments": [
                          6040
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6040,
                            "name": "totalPriceChange",
                            "nodeType": "VariableDeclaration",
                            "scope": 6076,
                            "src": "8810:23:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "typeName": {
                              "id": 6039,
                              "name": "int256",
                              "nodeType": "ElementaryTypeName",
                              "src": "8810:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6048,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 6047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6042,
                                "name": "_endingPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6024,
                                "src": "8843:12:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6041,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8836:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8836:20:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6045,
                                "name": "_startingPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6022,
                                "src": "8866:14:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6044,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8859:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8859:22:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "8836:45:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "8810:71:15"
                      },
                      {
                        "assignments": [
                          6050
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6050,
                            "name": "currentPriceChange",
                            "nodeType": "VariableDeclaration",
                            "scope": 6076,
                            "src": "9137:25:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "typeName": {
                              "id": 6049,
                              "name": "int256",
                              "nodeType": "ElementaryTypeName",
                              "src": "9137:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6060,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 6059,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 6055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6051,
                              "name": "totalPriceChange",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6040,
                              "src": "9165:16:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6053,
                                  "name": "_secondsPassed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6028,
                                  "src": "9191:14:15",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 6052,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "9184:6:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_int256_$",
                                  "typeString": "type(int256)"
                                },
                                "typeName": "int256"
                              },
                              "id": 6054,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9184:22:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "src": "9165:41:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6057,
                                "name": "_duration",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6026,
                                "src": "9216:9:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6056,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9209:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6058,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9209:17:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9165:61:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9137:89:15"
                      },
                      {
                        "assignments": [
                          6062
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6062,
                            "name": "currentPrice",
                            "nodeType": "VariableDeclaration",
                            "scope": 6076,
                            "src": "9425:19:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "typeName": {
                              "id": 6061,
                              "name": "int256",
                              "nodeType": "ElementaryTypeName",
                              "src": "9425:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6068,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 6067,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6064,
                                "name": "_startingPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6022,
                                "src": "9454:14:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6063,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9447:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6065,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9447:22:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6066,
                            "name": "currentPriceChange",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6050,
                            "src": "9472:18:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9447:43:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9425:65:15"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6070,
                              "name": "currentPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6062,
                              "src": "9532:12:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 6069,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9524:7:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint256"
                          },
                          "id": 6071,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9524:21:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 6032,
                        "id": 6072,
                        "nodeType": "Return",
                        "src": "9517:28:15"
                      }
                    ]
                  },
                  "id": 6074,
                  "nodeType": "IfStatement",
                  "src": "8462:1094:15",
                  "trueBody": {
                    "id": 6038,
                    "nodeType": "Block",
                    "src": "8495:170:15",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6036,
                          "name": "_endingPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6024,
                          "src": "8642:12:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 6032,
                        "id": 6037,
                        "nodeType": "Return",
                        "src": "8635:19:15"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Computes the current price of an auction. Factored out\n  from _currentPrice so we can run extensive unit tests.\n  When testing, make this function public and turn on\n  `Current price computation` test suite.",
            "id": 6076,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_computeCurrentPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6022,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "7952:22:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6021,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7952:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6024,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "7984:20:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6023,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7984:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6026,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "8014:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6025,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8014:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6028,
                  "name": "_secondsPassed",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "8041:22:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8041:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7942:127:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 6032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6031,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "8117:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6030,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8117:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8116:9:15"
            },
            "scope": 6091,
            "src": "7913:1649:15",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6089,
              "nodeType": "Block",
              "src": "9725:413:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6087,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6085,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 6083,
                        "name": "_price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6078,
                        "src": "10106:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 6084,
                        "name": "ownerCut",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5722,
                        "src": "10115:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "10106:17:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3130303030",
                      "id": 6086,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10126:5:15",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10000_by_1",
                        "typeString": "int_const 10000"
                      },
                      "value": "10000"
                    },
                    "src": "10106:25:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6082,
                  "id": 6088,
                  "nodeType": "Return",
                  "src": "10099:32:15"
                }
              ]
            },
            "documentation": "@dev Computes owner's cut of a sale.\n @param _price - Sale price of NFT.",
            "id": 6090,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_computeCut",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6078,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 6090,
                  "src": "9677:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6077,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9677:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9676:16:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 6082,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6081,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6090,
                  "src": "9716:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6080,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9716:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9715:9:15"
            },
            "scope": 6091,
            "src": "9656:482:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 6092,
        "src": "401:9740:15"
      }
    ],
    "src": "251:9891:15"
  },
  "legacyAST": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuctionBase.sol",
    "exportedSymbols": {
      "ClockAuctionBase": [
        6091
      ]
    },
    "id": 6092,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5706,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "251:24:15"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/ERC721.sol",
        "file": "../ERC721.sol",
        "id": 5707,
        "nodeType": "ImportDirective",
        "scope": 6092,
        "sourceUnit": 6436,
        "src": "277:23:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Auction Core\n @dev Contains models, variables, and internal methods for the auction.",
        "fullyImplemented": true,
        "id": 6091,
        "linearizedBaseContracts": [
          6091
        ],
        "name": "ClockAuctionBase",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "ClockAuctionBase.Auction",
            "id": 5718,
            "members": [
              {
                "constant": false,
                "id": 5709,
                "name": "seller",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "530:14:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 5708,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "530:7:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5711,
                "name": "startingPrice",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "604:21:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint128",
                  "typeString": "uint128"
                },
                "typeName": {
                  "id": 5710,
                  "name": "uint128",
                  "nodeType": "ElementaryTypeName",
                  "src": "604:7:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5713,
                "name": "endingPrice",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "679:19:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint128",
                  "typeString": "uint128"
                },
                "typeName": {
                  "id": 5712,
                  "name": "uint128",
                  "nodeType": "ElementaryTypeName",
                  "src": "679:7:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5715,
                "name": "duration",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "752:15:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 5714,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "752:6:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 5717,
                "name": "startedAt",
                "nodeType": "VariableDeclaration",
                "scope": 5718,
                "src": "868:16:15",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint64",
                  "typeString": "uint64"
                },
                "typeName": {
                  "id": 5716,
                  "name": "uint64",
                  "nodeType": "ElementaryTypeName",
                  "src": "868:6:15",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Auction",
            "nodeType": "StructDefinition",
            "scope": 6091,
            "src": "473:418:15",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 5720,
            "name": "nonFungibleContract",
            "nodeType": "VariableDeclaration",
            "scope": 6091,
            "src": "949:33:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ERC721_$6435",
              "typeString": "contract ERC721"
            },
            "typeName": {
              "contractScope": null,
              "id": 5719,
              "name": "ERC721",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6435,
              "src": "949:6:15",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC721_$6435",
                "typeString": "contract ERC721"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 5722,
            "name": "ownerCut",
            "nodeType": "VariableDeclaration",
            "scope": 6091,
            "src": "1114:23:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5721,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1114:7:15",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 5726,
            "name": "tokenIdToAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6091,
            "src": "1201:45:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
              "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction)"
            },
            "typeName": {
              "id": 5725,
              "keyType": {
                "id": 5723,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1210:7:15",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1201:28:15",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction)"
              },
              "valueType": {
                "contractScope": null,
                "id": 5724,
                "name": "Auction",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 5718,
                "src": "1221:7:15",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                  "typeString": "struct ClockAuctionBase.Auction"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 5736,
            "name": "AuctionCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 5735,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5728,
                  "indexed": false,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1274:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5727,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1274:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5730,
                  "indexed": false,
                  "name": "startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1291:21:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1291:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5732,
                  "indexed": false,
                  "name": "endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1314:19:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5731,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1314:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5734,
                  "indexed": false,
                  "name": "duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 5736,
                  "src": "1335:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5733,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1335:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1273:79:15"
            },
            "src": "1253:100:15"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 5744,
            "name": "AuctionSuccessful",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 5743,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5738,
                  "indexed": false,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5744,
                  "src": "1382:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5737,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1382:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5740,
                  "indexed": false,
                  "name": "totalPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5744,
                  "src": "1399:18:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1399:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5742,
                  "indexed": false,
                  "name": "winner",
                  "nodeType": "VariableDeclaration",
                  "scope": 5744,
                  "src": "1419:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5741,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1419:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1381:53:15"
            },
            "src": "1358:77:15"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 5748,
            "name": "AuctionCancelled",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 5747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5746,
                  "indexed": false,
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5748,
                  "src": "1463:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5745,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1463:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1462:17:15"
            },
            "src": "1440:40:15"
          },
          {
            "body": {
              "id": 5751,
              "nodeType": "Block",
              "src": "1545:2:15",
              "statements": []
            },
            "documentation": "@dev DON'T give me your money.",
            "id": 5752,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5749,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1533:2:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5750,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1545:0:15"
            },
            "scope": 6091,
            "src": "1525:22:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5763,
              "nodeType": "Block",
              "src": "1750:67:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5759,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5757,
                          "name": "_value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5754,
                          "src": "1768:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3138343436373434303733373039353531363135",
                          "id": 5758,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1778:20:15",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_18446744073709551615_by_1",
                            "typeString": "int_const 18446744073709551615"
                          },
                          "value": "18446744073709551615"
                        },
                        "src": "1768:30:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5756,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1760:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5760,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1760:39:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5761,
                  "nodeType": "ExpressionStatement",
                  "src": "1760:39:15"
                },
                {
                  "id": 5762,
                  "nodeType": "PlaceholderStatement",
                  "src": "1809:1:15"
                }
              ]
            },
            "documentation": null,
            "id": 5764,
            "name": "canBeStoredWith64Bits",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5754,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 5764,
                  "src": "1734:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5753,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1734:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1733:16:15"
            },
            "src": "1703:114:15",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5775,
              "nodeType": "Block",
              "src": "1871:85:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5769,
                          "name": "_value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5766,
                          "src": "1889:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "333430323832333636393230393338343633343633333734363037343331373638323131343535",
                          "id": 5770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1898:39:15",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
                            "typeString": "int_const 3402...(31 digits omitted)...1455"
                          },
                          "value": "340282366920938463463374607431768211455"
                        },
                        "src": "1889:48:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5768,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1881:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5772,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1881:57:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5773,
                  "nodeType": "ExpressionStatement",
                  "src": "1881:57:15"
                },
                {
                  "id": 5774,
                  "nodeType": "PlaceholderStatement",
                  "src": "1948:1:15"
                }
              ]
            },
            "documentation": null,
            "id": 5776,
            "name": "canBeStoredWith128Bits",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5767,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5766,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 5776,
                  "src": "1855:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5765,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1855:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1854:16:15"
            },
            "src": "1823:133:15",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5793,
              "nodeType": "Block",
              "src": "2228:76:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5790,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5787,
                              "name": "_tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5780,
                              "src": "2274:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5785,
                              "name": "nonFungibleContract",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5720,
                              "src": "2246:19:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC721_$6435",
                                "typeString": "contract ERC721"
                              }
                            },
                            "id": 5786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "ownerOf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6395,
                            "src": "2246:27:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                              "typeString": "function (uint256) view external returns (address)"
                            }
                          },
                          "id": 5788,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2246:37:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5789,
                          "name": "_claimant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5778,
                          "src": "2287:9:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2246:50:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 5791,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "2245:52:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 5784,
                  "id": 5792,
                  "nodeType": "Return",
                  "src": "2238:59:15"
                }
              ]
            },
            "documentation": "@dev Returns true if the claimant owns the token.\n @param _claimant - Address claiming to own the token.\n @param _tokenId - ID of token whose ownership to verify.",
            "id": 5794,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_owns",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5781,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5778,
                  "name": "_claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 5794,
                  "src": "2162:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5777,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2162:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5780,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5794,
                  "src": "2181:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5779,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2181:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2161:37:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5784,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5783,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5794,
                  "src": "2222:4:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5782,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2222:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2221:6:15"
            },
            "scope": 6091,
            "src": "2147:157:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5809,
              "nodeType": "Block",
              "src": "2604:116:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5804,
                        "name": "_owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5796,
                        "src": "2690:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5805,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 20680,
                        "src": "2698:4:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ClockAuctionBase_$6091",
                          "typeString": "contract ClockAuctionBase"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5806,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5798,
                        "src": "2704:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_contract$_ClockAuctionBase_$6091",
                          "typeString": "contract ClockAuctionBase"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5801,
                        "name": "nonFungibleContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5720,
                        "src": "2657:19:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      },
                      "id": 5803,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6411,
                      "src": "2657:32:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256) external"
                      }
                    },
                    "id": 5807,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2657:56:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5808,
                  "nodeType": "ExpressionStatement",
                  "src": "2657:56:15"
                }
              ]
            },
            "documentation": "@dev Escrows the NFT, assigning ownership to this contract.\n Throws if the escrow fails.\n @param _owner - Current owner address of token to escrow.\n @param _tokenId - ID of token whose approval to verify.",
            "id": 5810,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_escrow",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5796,
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 5810,
                  "src": "2561:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5795,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2561:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5798,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5810,
                  "src": "2577:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5797,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2577:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2560:34:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5800,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2604:0:15"
            },
            "scope": 6091,
            "src": "2544:176:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5824,
              "nodeType": "Block",
              "src": "3017:109:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5820,
                        "name": "_receiver",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5812,
                        "src": "3099:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5821,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5814,
                        "src": "3110:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5817,
                        "name": "nonFungibleContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5720,
                        "src": "3070:19:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      },
                      "id": 5819,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6418,
                      "src": "3070:28:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 5822,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3070:49:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5823,
                  "nodeType": "ExpressionStatement",
                  "src": "3070:49:15"
                }
              ]
            },
            "documentation": "@dev Transfers an NFT owned by this contract to another address.\n Returns true if the transfer succeeds.\n @param _receiver - Address to transfer NFT to.\n @param _tokenId - ID of token to transfer.",
            "id": 5825,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5815,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5812,
                  "name": "_receiver",
                  "nodeType": "VariableDeclaration",
                  "scope": 5825,
                  "src": "2971:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5811,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2971:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5814,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5825,
                  "src": "2990:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5813,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2990:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2970:37:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5816,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3017:0:15"
            },
            "scope": 6091,
            "src": "2952:174:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5863,
              "nodeType": "Block",
              "src": "3409:436:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 5836,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5833,
                            "name": "_auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5829,
                            "src": "3552:8:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                              "typeString": "struct ClockAuctionBase.Auction memory"
                            }
                          },
                          "id": 5834,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "duration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5715,
                          "src": "3552:17:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3573:9:15",
                          "subdenomination": "minutes",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_60_by_1",
                            "typeString": "int_const 60"
                          },
                          "value": "1"
                        },
                        "src": "3552:30:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3544:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5837,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3544:39:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5838,
                  "nodeType": "ExpressionStatement",
                  "src": "3544:39:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5843,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5839,
                        "name": "tokenIdToAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "3594:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                          "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                        }
                      },
                      "id": 5841,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5840,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5827,
                        "src": "3611:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3594:26:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage",
                        "typeString": "struct ClockAuctionBase.Auction storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5842,
                      "name": "_auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5829,
                      "src": "3623:8:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                        "typeString": "struct ClockAuctionBase.Auction memory"
                      }
                    },
                    "src": "3594:37:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "id": 5844,
                  "nodeType": "ExpressionStatement",
                  "src": "3594:37:15"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5847,
                            "name": "_tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5827,
                            "src": "3691:8:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5846,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3683:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5848,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3683:17:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5850,
                              "name": "_auction",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5829,
                              "src": "3722:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                                "typeString": "struct ClockAuctionBase.Auction memory"
                              }
                            },
                            "id": 5851,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "startingPrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5711,
                            "src": "3722:22:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          ],
                          "id": 5849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3714:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5852,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3714:31:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5854,
                              "name": "_auction",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5829,
                              "src": "3767:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                                "typeString": "struct ClockAuctionBase.Auction memory"
                              }
                            },
                            "id": 5855,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "endingPrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5713,
                            "src": "3767:20:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          ],
                          "id": 5853,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3759:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5856,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3759:29:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5858,
                              "name": "_auction",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5829,
                              "src": "3810:8:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                                "typeString": "struct ClockAuctionBase.Auction memory"
                              }
                            },
                            "id": 5859,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "duration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5715,
                            "src": "3810:17:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "id": 5857,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3802:7:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5860,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3802:26:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5845,
                      "name": "AuctionCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5736,
                      "src": "3655:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256,uint256)"
                      }
                    },
                    "id": 5861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3655:183:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5862,
                  "nodeType": "EmitStatement",
                  "src": "3650:188:15"
                }
              ]
            },
            "documentation": "@dev Adds an auction to the list of open auctions. Also fires the\n  AuctionCreated event.\n @param _tokenId The ID of the token to be put on auction.\n @param _auction Auction to add.",
            "id": 5864,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_addAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5830,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5827,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5864,
                  "src": "3364:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5826,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3364:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5829,
                  "name": "_auction",
                  "nodeType": "VariableDeclaration",
                  "scope": 5864,
                  "src": "3382:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                    "typeString": "struct ClockAuctionBase.Auction"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5828,
                    "name": "Auction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5718,
                    "src": "3382:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                      "typeString": "struct ClockAuctionBase.Auction"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3363:36:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5831,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3409:0:15"
            },
            "scope": 6091,
            "src": "3343:502:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5884,
              "nodeType": "Block",
              "src": "3968:120:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5872,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5866,
                        "src": "3993:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5871,
                      "name": "_removeAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5971,
                      "src": "3978:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3978:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5874,
                  "nodeType": "ExpressionStatement",
                  "src": "3978:24:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5876,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5868,
                        "src": "4022:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5877,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5866,
                        "src": "4031:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5875,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5825,
                      "src": "4012:9:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4012:28:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5879,
                  "nodeType": "ExpressionStatement",
                  "src": "4012:28:15"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5881,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5866,
                        "src": "4072:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5880,
                      "name": "AuctionCancelled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5748,
                      "src": "4055:16:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4055:26:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5883,
                  "nodeType": "EmitStatement",
                  "src": "4050:31:15"
                }
              ]
            },
            "documentation": "@dev Cancels an auction unconditionally.",
            "id": 5885,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_cancelAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5869,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5866,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5885,
                  "src": "3924:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5865,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3924:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5868,
                  "name": "_seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 5885,
                  "src": "3942:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5867,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3942:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3923:35:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5870,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3968:0:15"
            },
            "scope": 6091,
            "src": "3900:188:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5959,
              "nodeType": "Block",
              "src": "4295:1996:15",
              "statements": [
                {
                  "assignments": [
                    5895
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5895,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5960,
                      "src": "4354:23:15",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5894,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "4354:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5899,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5896,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "4380:16:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5898,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5897,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5887,
                      "src": "4397:8:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4380:26:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4354:52:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5902,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5895,
                            "src": "4700:7:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5901,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "4687:12:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4687:21:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5900,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4679:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4679:30:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5905,
                  "nodeType": "ExpressionStatement",
                  "src": "4679:30:15"
                },
                {
                  "assignments": [
                    5907
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5907,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 5960,
                      "src": "4803:13:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5906,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4803:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5911,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5909,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5895,
                        "src": "4833:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      ],
                      "id": 5908,
                      "name": "_currentPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6020,
                      "src": "4819:13:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 5910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4819:22:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4803:38:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5915,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5913,
                          "name": "_bidAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5889,
                          "src": "4859:10:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5914,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5907,
                          "src": "4873:5:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4859:19:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5912,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4851:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5916,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4851:28:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5917,
                  "nodeType": "ExpressionStatement",
                  "src": "4851:28:15"
                },
                {
                  "assignments": [
                    5919
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5919,
                      "name": "seller",
                      "nodeType": "VariableDeclaration",
                      "scope": 5960,
                      "src": "4983:14:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5918,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4983:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5922,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 5920,
                      "name": "auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5895,
                      "src": "5000:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction storage pointer"
                      }
                    },
                    "id": 5921,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "seller",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 5709,
                    "src": "5000:14:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4983:31:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5924,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5887,
                        "src": "5174:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5923,
                      "name": "_removeAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5971,
                      "src": "5159:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5159:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5926,
                  "nodeType": "ExpressionStatement",
                  "src": "5159:24:15"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5929,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5927,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5907,
                      "src": "5257:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5928,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5265:1:15",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "5257:9:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5949,
                  "nodeType": "IfStatement",
                  "src": "5253:920:15",
                  "trueBody": {
                    "id": 5948,
                    "nodeType": "Block",
                    "src": "5268:905:15",
                    "statements": [
                      {
                        "assignments": [
                          5931
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5931,
                            "name": "auctioneerCut",
                            "nodeType": "VariableDeclaration",
                            "scope": 5960,
                            "src": "5464:21:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5930,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5464:7:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5935,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5933,
                              "name": "price",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5907,
                              "src": "5500:5:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 5932,
                            "name": "_computeCut",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6090,
                            "src": "5488:11:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view returns (uint256)"
                            }
                          },
                          "id": 5934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5488:18:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5464:42:15"
                      },
                      {
                        "assignments": [
                          5937
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5937,
                            "name": "sellerProceeds",
                            "nodeType": "VariableDeclaration",
                            "scope": 5960,
                            "src": "5520:22:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5936,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5520:7:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5941,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5938,
                            "name": "price",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5907,
                            "src": "5545:5:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5939,
                            "name": "auctioneerCut",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5931,
                            "src": "5553:13:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5545:21:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5520:46:15"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5945,
                              "name": "sellerProceeds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5937,
                              "src": "6147:14:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5942,
                              "name": "seller",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5919,
                              "src": "6131:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 5944,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "6131:15:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 5946,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6131:31:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5947,
                        "nodeType": "ExpressionStatement",
                        "src": "6131:31:15"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5951,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5887,
                        "src": "6233:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5952,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5907,
                        "src": "6243:5:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5953,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "6250:3:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5954,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "6250:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5950,
                      "name": "AuctionSuccessful",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5744,
                      "src": "6215:17:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,uint256,address)"
                      }
                    },
                    "id": 5955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6215:46:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5956,
                  "nodeType": "EmitStatement",
                  "src": "6210:51:15"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5957,
                    "name": "price",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5907,
                    "src": "6279:5:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5893,
                  "id": 5958,
                  "nodeType": "Return",
                  "src": "6272:12:15"
                }
              ]
            },
            "documentation": "@dev Computes the price and transfers winnings.\n Does NOT transfer ownership of token.",
            "id": 5960,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_bid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5890,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5887,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5960,
                  "src": "4210:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5886,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4210:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5889,
                  "name": "_bidAmount",
                  "nodeType": "VariableDeclaration",
                  "scope": 5960,
                  "src": "4228:18:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5888,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4228:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4209:38:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5892,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5960,
                  "src": "4282:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5891,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4282:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4281:9:15"
            },
            "scope": 6091,
            "src": "4196:2095:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5970,
              "nodeType": "Block",
              "src": "6460:50:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "6470:33:15",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5965,
                        "name": "tokenIdToAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5726,
                        "src": "6477:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                          "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                        }
                      },
                      "id": 5967,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5966,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5962,
                        "src": "6494:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "6477:26:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage",
                        "typeString": "struct ClockAuctionBase.Auction storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5969,
                  "nodeType": "ExpressionStatement",
                  "src": "6470:33:15"
                }
              ]
            },
            "documentation": "@dev Removes an auction from the list of open auctions.\n @param _tokenId - ID of NFT on auction.",
            "id": 5971,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "_removeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5962,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5971,
                  "src": "6433:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5961,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6433:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6432:18:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5964,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6460:0:15"
            },
            "scope": 6091,
            "src": "6409:101:15",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5984,
              "nodeType": "Block",
              "src": "6689:48:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 5981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5978,
                            "name": "_auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5973,
                            "src": "6707:8:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          },
                          "id": 5979,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startedAt",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5717,
                          "src": "6707:18:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5980,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6728:1:15",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6707:22:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 5982,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "6706:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 5977,
                  "id": 5983,
                  "nodeType": "Return",
                  "src": "6699:31:15"
                }
              ]
            },
            "documentation": "@dev Returns true if the NFT is on auction.\n @param _auction - Auction to check.",
            "id": 5985,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_isOnAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5973,
                  "name": "_auction",
                  "nodeType": "VariableDeclaration",
                  "scope": 5985,
                  "src": "6634:24:15",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                    "typeString": "struct ClockAuctionBase.Auction"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5972,
                    "name": "Auction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5718,
                    "src": "6634:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                      "typeString": "struct ClockAuctionBase.Auction"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6633:26:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5976,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5985,
                  "src": "6683:4:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5975,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6683:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6682:6:15"
            },
            "scope": 6091,
            "src": "6612:125:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6019,
              "nodeType": "Block",
              "src": "7141:524:15",
              "statements": [
                {
                  "assignments": [
                    5993
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5993,
                      "name": "secondsPassed",
                      "nodeType": "VariableDeclaration",
                      "scope": 6020,
                      "src": "7151:21:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5992,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7151:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5995,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 5994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "7175:1:15",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7151:25:15"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5999,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5996,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20641,
                      "src": "7392:3:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5997,
                        "name": "_auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5987,
                        "src": "7398:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      },
                      "id": 5998,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startedAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5717,
                      "src": "7398:18:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "7392:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6008,
                  "nodeType": "IfStatement",
                  "src": "7388:95:15",
                  "trueBody": {
                    "id": 6007,
                    "nodeType": "Block",
                    "src": "7418:65:15",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6000,
                            "name": "secondsPassed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5993,
                            "src": "7432:13:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6004,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6001,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20641,
                              "src": "7448:3:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6002,
                                "name": "_auction",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5987,
                                "src": "7454:8:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                                  "typeString": "struct ClockAuctionBase.Auction storage pointer"
                                }
                              },
                              "id": 6003,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "startedAt",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5717,
                              "src": "7454:18:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            "src": "7448:24:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7432:40:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6006,
                        "nodeType": "ExpressionStatement",
                        "src": "7432:40:15"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6010,
                          "name": "_auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5987,
                          "src": "7534:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 6011,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "startingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5711,
                        "src": "7534:22:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6012,
                          "name": "_auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5987,
                          "src": "7570:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 6013,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "endingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5713,
                        "src": "7570:20:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6014,
                          "name": "_auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5987,
                          "src": "7604:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 6015,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "duration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5715,
                        "src": "7604:17:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6016,
                        "name": "secondsPassed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5993,
                        "src": "7635:13:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6009,
                      "name": "_computeCurrentPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6076,
                      "src": "7500:20:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 6017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7500:158:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5991,
                  "id": 6018,
                  "nodeType": "Return",
                  "src": "7493:165:15"
                }
              ]
            },
            "documentation": "@dev Returns current price of an NFT on auction. Broken into two\n  functions (this one, that computes the duration from the auction\n  structure, and the other that does the price computation) so we\n  can easily test that the price computation works correctly.",
            "id": 6020,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_currentPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5988,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5987,
                  "name": "_auction",
                  "nodeType": "VariableDeclaration",
                  "scope": 6020,
                  "src": "7055:24:15",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                    "typeString": "struct ClockAuctionBase.Auction"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5986,
                    "name": "Auction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5718,
                    "src": "7055:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                      "typeString": "struct ClockAuctionBase.Auction"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7054:26:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 5991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5990,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6020,
                  "src": "7128:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5989,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7128:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7127:9:15"
            },
            "scope": 6091,
            "src": "7032:633:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6075,
              "nodeType": "Block",
              "src": "8130:1432:15",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6033,
                      "name": "_secondsPassed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6028,
                      "src": "8466:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6034,
                      "name": "_duration",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6026,
                      "src": "8484:9:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8466:27:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6073,
                    "nodeType": "Block",
                    "src": "8671:885:15",
                    "statements": [
                      {
                        "assignments": [
                          6040
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6040,
                            "name": "totalPriceChange",
                            "nodeType": "VariableDeclaration",
                            "scope": 6076,
                            "src": "8810:23:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "typeName": {
                              "id": 6039,
                              "name": "int256",
                              "nodeType": "ElementaryTypeName",
                              "src": "8810:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6048,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 6047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6042,
                                "name": "_endingPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6024,
                                "src": "8843:12:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6041,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8836:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8836:20:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6045,
                                "name": "_startingPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6022,
                                "src": "8866:14:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6044,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8859:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6046,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8859:22:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "8836:45:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "8810:71:15"
                      },
                      {
                        "assignments": [
                          6050
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6050,
                            "name": "currentPriceChange",
                            "nodeType": "VariableDeclaration",
                            "scope": 6076,
                            "src": "9137:25:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "typeName": {
                              "id": 6049,
                              "name": "int256",
                              "nodeType": "ElementaryTypeName",
                              "src": "9137:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6060,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 6059,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 6055,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6051,
                              "name": "totalPriceChange",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6040,
                              "src": "9165:16:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6053,
                                  "name": "_secondsPassed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6028,
                                  "src": "9191:14:15",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 6052,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "9184:6:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_int256_$",
                                  "typeString": "type(int256)"
                                },
                                "typeName": "int256"
                              },
                              "id": 6054,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9184:22:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "src": "9165:41:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6057,
                                "name": "_duration",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6026,
                                "src": "9216:9:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6056,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9209:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6058,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9209:17:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9165:61:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9137:89:15"
                      },
                      {
                        "assignments": [
                          6062
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6062,
                            "name": "currentPrice",
                            "nodeType": "VariableDeclaration",
                            "scope": 6076,
                            "src": "9425:19:15",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "typeName": {
                              "id": 6061,
                              "name": "int256",
                              "nodeType": "ElementaryTypeName",
                              "src": "9425:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6068,
                        "initialValue": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 6067,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6064,
                                "name": "_startingPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6022,
                                "src": "9454:14:15",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 6063,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9447:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": "int256"
                            },
                            "id": 6065,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9447:22:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 6066,
                            "name": "currentPriceChange",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6050,
                            "src": "9472:18:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "9447:43:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "9425:65:15"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6070,
                              "name": "currentPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6062,
                              "src": "9532:12:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 6069,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "9524:7:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": "uint256"
                          },
                          "id": 6071,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9524:21:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 6032,
                        "id": 6072,
                        "nodeType": "Return",
                        "src": "9517:28:15"
                      }
                    ]
                  },
                  "id": 6074,
                  "nodeType": "IfStatement",
                  "src": "8462:1094:15",
                  "trueBody": {
                    "id": 6038,
                    "nodeType": "Block",
                    "src": "8495:170:15",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6036,
                          "name": "_endingPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6024,
                          "src": "8642:12:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 6032,
                        "id": 6037,
                        "nodeType": "Return",
                        "src": "8635:19:15"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Computes the current price of an auction. Factored out\n  from _currentPrice so we can run extensive unit tests.\n  When testing, make this function public and turn on\n  `Current price computation` test suite.",
            "id": 6076,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_computeCurrentPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6022,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "7952:22:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6021,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7952:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6024,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "7984:20:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6023,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7984:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6026,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "8014:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6025,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8014:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6028,
                  "name": "_secondsPassed",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "8041:22:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8041:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7942:127:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 6032,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6031,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6076,
                  "src": "8117:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6030,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8117:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8116:9:15"
            },
            "scope": 6091,
            "src": "7913:1649:15",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6089,
              "nodeType": "Block",
              "src": "9725:413:15",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6087,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6085,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 6083,
                        "name": "_price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6078,
                        "src": "10106:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 6084,
                        "name": "ownerCut",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5722,
                        "src": "10115:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "10106:17:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3130303030",
                      "id": 6086,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10126:5:15",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10000_by_1",
                        "typeString": "int_const 10000"
                      },
                      "value": "10000"
                    },
                    "src": "10106:25:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6082,
                  "id": 6088,
                  "nodeType": "Return",
                  "src": "10099:32:15"
                }
              ]
            },
            "documentation": "@dev Computes owner's cut of a sale.\n @param _price - Sale price of NFT.",
            "id": 6090,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "_computeCut",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6078,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 6090,
                  "src": "9677:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6077,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9677:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9676:16:15"
            },
            "payable": false,
            "returnParameters": {
              "id": 6082,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6081,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6090,
                  "src": "9716:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6080,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9716:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9715:9:15"
            },
            "scope": 6091,
            "src": "9656:482:15",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 6092,
        "src": "401:9740:15"
      }
    ],
    "src": "251:9891:15"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-02T14:04:10.978Z"
}