{
  "contractName": "KittyAuction",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kittyId",
          "type": "uint256"
        },
        {
          "name": "_recipient",
          "type": "address"
        }
      ],
      "name": "rescueLostKitty",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "cfoAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ceoAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "implementsERC721",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "siringAuction",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_address",
          "type": "address"
        }
      ],
      "name": "setGeneScienceAddress",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newCEO",
          "type": "address"
        }
      ],
      "name": "setCEO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newCOO",
          "type": "address"
        }
      ],
      "name": "setCOO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "sireAllowedToAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_matronId",
          "type": "uint256"
        },
        {
          "name": "_sireId",
          "type": "uint256"
        }
      ],
      "name": "canBreedWith",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "tokensOfOwnerByIndex",
      "outputs": [
        {
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "kittyIndexToApproved",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "val",
          "type": "uint256"
        }
      ],
      "name": "setAutoBirthFee",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_addr",
          "type": "address"
        },
        {
          "name": "_sireId",
          "type": "uint256"
        }
      ],
      "name": "approveSiring",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newCFO",
          "type": "address"
        }
      ],
      "name": "setCFO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "withdrawBalance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "name": "owner",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_matronId",
          "type": "uint256"
        },
        {
          "name": "_sireId",
          "type": "uint256"
        }
      ],
      "name": "breedWith",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "count",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_matronId",
          "type": "uint256"
        }
      ],
      "name": "giveBirth",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "cooldowns",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "kittyIndexToOwner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "cooAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "autoBirthFee",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_kittyId",
          "type": "uint256"
        }
      ],
      "name": "isReadyToBreed",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "saleAuction",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "geneScience",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_matronId",
          "type": "uint256"
        },
        {
          "name": "_sireId",
          "type": "uint256"
        }
      ],
      "name": "breedWithAuto",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "matronId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "sireId",
          "type": "uint256"
        }
      ],
      "name": "Pregnant",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "matronId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "cooldownEndTime",
          "type": "uint256"
        }
      ],
      "name": "AutoBirth",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "kittyId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "matronId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "sireId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "genes",
          "type": "uint256"
        }
      ],
      "name": "Birth",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "newContract",
          "type": "address"
        }
      ],
      "name": "ContractUpgrade",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_address",
          "type": "address"
        }
      ],
      "name": "setSaleAuctionAddress",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_address",
          "type": "address"
        }
      ],
      "name": "setSiringAuctionAddress",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kittyId",
          "type": "uint256"
        },
        {
          "name": "_startingPrice",
          "type": "uint256"
        },
        {
          "name": "_endingPrice",
          "type": "uint256"
        },
        {
          "name": "_duration",
          "type": "uint256"
        }
      ],
      "name": "createSaleAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kittyId",
          "type": "uint256"
        },
        {
          "name": "_startingPrice",
          "type": "uint256"
        },
        {
          "name": "_endingPrice",
          "type": "uint256"
        },
        {
          "name": "_duration",
          "type": "uint256"
        }
      ],
      "name": "createSiringAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_sireId",
          "type": "uint256"
        },
        {
          "name": "_matronId",
          "type": "uint256"
        }
      ],
      "name": "bidOnSiringAuction",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "withdrawAuctionBalances",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6002805460a060020a60ff0219169055610240604052603c6080908152607860a05261012c60c05261025860e05261070861010052610e1061012052611c2061014052613840610160526170806101805261e1006101a052620151806101c0526202a3006101e052620546006102005262093a80610220526200008790600390600e62000135565b5060408051808201909152600d8082527f43727970746f4b697474696573000000000000000000000000000000000000006020909201918252620000ce91600a91620001d8565b506040805180820190915260028082527f434b00000000000000000000000000000000000000000000000000000000000060209092019182526200011591600b91620001d8565b5066038d7ea4c68000600c553480156200012e57600080fd5b506200029d565b600283019183908215620001c65791602002820160005b838211156200019257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026200014c565b8015620001c45782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000192565b505b50620001d492915062000259565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021b57805160ff19168380011785556200024b565b828001600101855582156200024b579182015b828111156200024b5782518255916020019190600101906200022e565b50620001d492915062000280565b6200027d91905b80821115620001d457805463ffffffff1916815560010162000260565b90565b6200027d91905b80821115620001d4576000815560010162000287565b6123e380620002ad6000396000f3006080604052600436106101f55763ffffffff60e060020a600035041663030c474181146101fa5780630519ce791461022057806306fdde0314610251578063095ea7b3146102db5780630a0f8168146102ff5780631051db341461031457806314001f4c1461033d57806318160ddd1461035e57806321717ebf1461038557806323b872dd1461039a57806324e7a38a146103c457806327d7874c146103e55780632ba73c15146104065780633d7d3f5a146104275780633f4ba83a1461044857806346116e6f1461045d57806346d22c70146104755780634707f44f14610490578063481af3d3146104b45780634ad8c938146104cc5780634b85fd55146104ed5780634dfff04f146105055780634e0a3379146105295780635c975abb1461054a5780635fd8c7101461055f5780636352211e146105745780636fbde40d1461058c5780637004fb84146105ad57806370a08231146105c85780638456cb59146105e957806388c2a0bf146105fe57806391876e571461061657806395d89b411461062b5780639d6fac6f14610640578063a45f4bfc14610671578063a9059cbb14610689578063b047fb50146106ad578063b0c35c05146106c2578063d3e6f49f146106d7578063e6cbe351146106ef578063ed60ade614610704578063f2b47d5214610712578063f7d8c88314610727575b600080fd5b34801561020657600080fd5b5061021e600435600160a060020a0360243516610735565b005b34801561022c57600080fd5b50610235610787565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610796565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a0578181015183820152602001610288565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e757600080fd5b5061021e600160a060020a0360043516602435610824565b34801561030b57600080fd5b50610235610896565b34801561032057600080fd5b506103296108a5565b604080519115158252519081900360200190f35b34801561034957600080fd5b5061021e600160a060020a03600435166108aa565b34801561036a57600080fd5b5061037361095d565b60408051918252519081900360200190f35b34801561039157600080fd5b50610235610967565b3480156103a657600080fd5b5061021e600160a060020a0360043581169060243516604435610976565b3480156103d057600080fd5b5061021e600160a060020a03600435166109c7565b3480156103f157600080fd5b5061021e600160a060020a0360043516610a7a565b34801561041257600080fd5b5061021e600160a060020a0360043516610ac8565b34801561043357600080fd5b5061021e600435602435604435606435610b16565b34801561045457600080fd5b5061021e610bf8565b34801561046957600080fd5b50610235600435610c47565b34801561048157600080fd5b50610329600435602435610c62565b34801561049c57600080fd5b50610373600160a060020a0360043516602435610ce4565b3480156104c057600080fd5b50610235600435610d39565b3480156104d857600080fd5b5061021e600435602435604435606435610d54565b3480156104f957600080fd5b5061021e600435610e2c565b34801561051157600080fd5b5061021e600160a060020a0360043516602435610e48565b34801561053557600080fd5b5061021e600160a060020a0360043516610ea2565b34801561055657600080fd5b50610329610ef0565b34801561056b57600080fd5b5061021e610f00565b34801561058057600080fd5b50610235600435610f54565b34801561059857600080fd5b5061021e600160a060020a0360043516610f7d565b3480156105b957600080fd5b5061021e600435602435611030565b3480156105d457600080fd5b50610373600160a060020a0360043516611225565b3480156105f557600080fd5b5061021e611240565b34801561060a57600080fd5b506103736004356112c0565b34801561062257600080fd5b5061021e61154c565b34801561063757600080fd5b50610266611635565b34801561064c57600080fd5b50610658600435611690565b6040805163ffffffff9092168252519081900360200190f35b34801561067d57600080fd5b506102356004356116bd565b34801561069557600080fd5b5061021e600160a060020a03600435166024356116d8565b3480156106b957600080fd5b50610235611724565b3480156106ce57600080fd5b50610373611733565b3480156106e357600080fd5b50610329600435611739565b3480156106fb57600080fd5b50610235611808565b61021e600435602435611817565b34801561071e57600080fd5b50610235611a4d565b61021e600435602435611a5c565b600254600160a060020a0316331461074c57600080fd5b60025460a060020a900460ff161561076357600080fd5b61076d3083611b13565b151561077857600080fd5b610783308284611b33565b5050565b600154600160a060020a031681565b600a805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b505050505081565b60025460a060020a900460ff161561083b57600080fd5b6108453382611b13565b151561085057600080fd5b61085a8183611c0c565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b60008054600160a060020a031633146108c257600080fd5b81905080600160a060020a03166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561090357600080fd5b505af1158015610917573d6000803e3d6000fd5b505050506040513d602081101561092d57600080fd5b5051151561093a57600080fd5b600f8054600160a060020a031916600160a060020a039290921691909117905550565b6005546000190190565b600f54600160a060020a031681565b60025460a060020a900460ff161561098d57600080fd5b6109973382611c3a565b15156109a257600080fd5b6109ac8382611b13565b15156109b757600080fd5b6109c2838383611b33565b505050565b60008054600160a060020a031633146109df57600080fd5b81905080600160a060020a03166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b505050506040513d6020811015610a4a57600080fd5b50511515610a5757600080fd5b600d8054600160a060020a031916600160a060020a039290921691909117905550565b600054600160a060020a03163314610a9157600080fd5b600160a060020a0381161515610aa657600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610adf57600080fd5b600160a060020a0381161515610af457600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1615610b2d57600080fd5b610b373385611b13565b1515610b4257600080fd5b600e54610b59908590600160a060020a0316611c0c565b600e54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b505af1158015610bee573d6000803e3d6000fd5b5050505050505050565b600054600160a060020a03163314610c0f57600080fd5b60025460a060020a900460ff161515610c2757600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b60008080808511610c7257600080fd5b60008411610c7f57600080fd5b6005805486908110610c8d57fe5b90600052602060002090600202019150600584815481101515610cac57fe5b90600052602060002090600202019050610cc882868387611c5a565b8015610cd95750610cd98486611dda565b92505b505092915050565b60008060015b610cf261095d565b81116101f557600081815260066020526040902054600160a060020a0386811691161415610d315783821415610d2a57809250610cdc565b6001909101905b600101610cea565b600860205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610d6b57600080fd5b610d753385611b13565b1515610d8057600080fd5b610d8984611739565b1515610d9457600080fd5b600f54610dab908590600160a060020a0316611c0c565b600f54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b600254600160a060020a03163314610e4357600080fd5b600c55565b60025460a060020a900460ff1615610e5f57600080fd5b610e693382611b13565b1515610e7457600080fd5b60009081526009602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610eb957600080fd5b600160a060020a0381161515610ece57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1681565b600154600160a060020a03163314610f1757600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f51573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a0316801515610f7857600080fd5b919050565b60008054600160a060020a03163314610f9557600080fd5b81905080600160a060020a03166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050506040513d602081101561100057600080fd5b5051151561100d57600080fd5b600e8054600160a060020a031916600160a060020a039290921691909117905550565b600254600090819060a060020a900460ff161561104c57600080fd5b6110563385611b13565b151561106157600080fd5b61106b8385611dda565b151561107657600080fd5b600580548590811061108457fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290925061112f90611e2f565b151561113a57600080fd5b600580548490811061114857fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e08201529091506111f390611e2f565b15156111fe57600080fd5b61120a82858386611c5a565b151561121557600080fd5b61121f8484611e5f565b50505050565b600160a060020a031660009081526007602052604090205490565b600254600160a060020a03163314806112635750600054600160a060020a031633145b806112785750600154600160a060020a031633145b151561128357600080fd5b60025460a060020a900460ff161561129a57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b600080600080600080600080600260149054906101000a900460ff161515156112e857600080fd5b600580548a9081106112f657fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff16151561132357600080fd5b604080516101008101825288548152600189015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526113b490611f72565b15156113bf57600080fd5b60018701546005805460c060020a90920463ffffffff16975090879081106113e357fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a92839004811696509190041684101561143057600185015460f060020a900461ffff1693505b600d5487548654604080517f8d8b1b880000000000000000000000000000000000000000000000000000000081526004810193909352602483019190915251600160a060020a0390921691638d8b1b88916044808201926020929091908290030181600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b505050506040513d60208110156114cd57600080fd5b505160008a815260066020526040902054600189810154929550600160a060020a039091169350611516918b9160c060020a90910463ffffffff1690870161ffff168686611fa1565b60019790970180547bffffffff000000000000000000000000000000000000000000000000191690555094979650505050505050565b600254600160a060020a0316331461156357600080fd5b600e60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b50505050600f60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561162157600080fd5b505af115801561121f573d6000803e3d6000fd5b600b805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b600381600e811061169d57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b60025460a060020a900460ff16156116ef57600080fd5b600160a060020a038216151561170457600080fd5b61170e3382611b13565b151561171957600080fd5b610783338383611b33565b600254600160a060020a031681565b600c5481565b60008080831161174857600080fd5b600580548490811061175657fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290915061180190611e2f565b9392505050565b600e54600160a060020a031681565b60025460009081908190819060a060020a900460ff161561183757600080fd5b6118413386611b13565b151561184c57600080fd5b61185585611739565b151561186057600080fd5b61186a8587612252565b151561187557600080fd5b600f54604080517fc55d0f56000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163c55d0f56916024808201926020929091908290030181600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b505050506040513d602081101561190657600080fd5b5051600c54909450349350600092508401831061192957600c5483039250600191505b600f54604080517f454a2ab3000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163454a2ab3918691602480830192600092919082900301818588803b15801561199057600080fd5b505af11580156119a4573d6000803e3d6000fd5b50505050506119bf8563ffffffff168763ffffffff16611e5f565b8115611a455760058054869081106119d357fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c858260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a15b505050505050565b600d54600160a060020a031681565b60025460009060a060020a900460ff1615611a7657600080fd5b600c54341015611a8557600080fd5b611a8f8383611030565b6005805484908110611a9d57fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c838260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a1505050565b600090815260066020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260076020908152604080832080546001019055858352600690915290208054600160a060020a0319169091179055831615611bc657600160a060020a03831660009081526007602090815260408083208054600019019055838352600982528083208054600160a060020a03199081169091556008909252909120805490911690555b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000918252600860205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260086020526040902054600160a060020a0391821691161490565b600081841415611c6c57506000611dd2565b6001850154608060020a900463ffffffff16821480611c9b5750600185015460a060020a900463ffffffff1682145b15611ca857506000611dd2565b6001830154608060020a900463ffffffff16841480611cd75750600183015460a060020a900463ffffffff1684145b15611ce457506000611dd2565b6001830154608060020a900463ffffffff161580611d1157506001850154608060020a900463ffffffff16155b15611d1e57506001611dd2565b60018581015490840154608060020a9182900463ffffffff90811692909104161480611d69575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b15611d7657506000611dd2565b6001808601549084015460a060020a900463ffffffff908116608060020a909204161480611dc157506001858101549084015460a060020a9182900463ffffffff9081169290910416145b15611dce57506000611dd2565b5060015b949350505050565b6000818152600660205260408082205484835290822054600160a060020a03918216911680821480610cd95750600085815260096020526040902054600160a060020a03908116908316149250505092915050565b60008160a0015163ffffffff166000148015611e59575042826040015167ffffffffffffffff1611155b92915050565b600080600583815481101515611e7157fe5b90600052602060002090600202019150600584815481101515611e9057fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff8716021790559050611ee0826122a1565b611ee9816122a1565b60008481526009602090815260408083208054600160a060020a0319908116909155868452818420805490911690558683526006825291829020548251600160a060020a0391909116815290810186905280820185905290517f6b4808987a5cecdf67d54ca5dc20664fafca80ef7195097800c12549245ab20d9181900360600190a150505050565b60008160a0015163ffffffff16600014158015611e59575050604001514267ffffffffffffffff909116111590565b6000611fab612373565b600063ffffffff881115611fbe57600080fd5b63ffffffff871115611fcf57600080fd5b61ffff861115611fde57600080fd5b505060408051610100810182528481524267ffffffffffffffff90811660208301908152600093830184815263ffffffff8b8116606086019081528b82166080870190815260a0870188815260c0880189815261ffff8e811660e08b01908152600580546001810182559c528a517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db060028e029081019190915598517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1909901805498519651955194519351915167ffffffffffffffff19909916998b16999099176fffffffffffffffff000000000000000019166801000000000000000096909a16959095029890981773ffffffff000000000000000000000000000000001916608060020a938616939093029290921777ffffffff0000000000000000000000000000000000000000191660a060020a91851691909102177bffffffff000000000000000000000000000000000000000000000000191660c060020a91841691909102177fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e060020a91861691909102177dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f060020a92909416919091029290921790559091908111156121d557600080fd5b60608281015160808085015185516040805187815263ffffffff95861660208201529490921684830152938301939093529151600160a060020a038716927f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5928290030190a261224760008583611b33565b979650505050505050565b600080600060058581548110151561226657fe5b9060005260206000209060020201915060058481548110151561228557fe5b90600052602060002090600202019050610cd982868387611c5a565b600181015460039060e060020a900461ffff16600e81106122be57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1642018160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600d81600101601c9054906101000a900461ffff1661ffff161015610f51576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff90921691909117905550565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152905600a165627a7a72305820ac49117d816ea70975855e982d734e5af0c4486800279018e819d0649808e0d80029",
  "deployedBytecode": "0x6080604052600436106101f55763ffffffff60e060020a600035041663030c474181146101fa5780630519ce791461022057806306fdde0314610251578063095ea7b3146102db5780630a0f8168146102ff5780631051db341461031457806314001f4c1461033d57806318160ddd1461035e57806321717ebf1461038557806323b872dd1461039a57806324e7a38a146103c457806327d7874c146103e55780632ba73c15146104065780633d7d3f5a146104275780633f4ba83a1461044857806346116e6f1461045d57806346d22c70146104755780634707f44f14610490578063481af3d3146104b45780634ad8c938146104cc5780634b85fd55146104ed5780634dfff04f146105055780634e0a3379146105295780635c975abb1461054a5780635fd8c7101461055f5780636352211e146105745780636fbde40d1461058c5780637004fb84146105ad57806370a08231146105c85780638456cb59146105e957806388c2a0bf146105fe57806391876e571461061657806395d89b411461062b5780639d6fac6f14610640578063a45f4bfc14610671578063a9059cbb14610689578063b047fb50146106ad578063b0c35c05146106c2578063d3e6f49f146106d7578063e6cbe351146106ef578063ed60ade614610704578063f2b47d5214610712578063f7d8c88314610727575b600080fd5b34801561020657600080fd5b5061021e600435600160a060020a0360243516610735565b005b34801561022c57600080fd5b50610235610787565b60408051600160a060020a039092168252519081900360200190f35b34801561025d57600080fd5b50610266610796565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a0578181015183820152602001610288565b50505050905090810190601f1680156102cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e757600080fd5b5061021e600160a060020a0360043516602435610824565b34801561030b57600080fd5b50610235610896565b34801561032057600080fd5b506103296108a5565b604080519115158252519081900360200190f35b34801561034957600080fd5b5061021e600160a060020a03600435166108aa565b34801561036a57600080fd5b5061037361095d565b60408051918252519081900360200190f35b34801561039157600080fd5b50610235610967565b3480156103a657600080fd5b5061021e600160a060020a0360043581169060243516604435610976565b3480156103d057600080fd5b5061021e600160a060020a03600435166109c7565b3480156103f157600080fd5b5061021e600160a060020a0360043516610a7a565b34801561041257600080fd5b5061021e600160a060020a0360043516610ac8565b34801561043357600080fd5b5061021e600435602435604435606435610b16565b34801561045457600080fd5b5061021e610bf8565b34801561046957600080fd5b50610235600435610c47565b34801561048157600080fd5b50610329600435602435610c62565b34801561049c57600080fd5b50610373600160a060020a0360043516602435610ce4565b3480156104c057600080fd5b50610235600435610d39565b3480156104d857600080fd5b5061021e600435602435604435606435610d54565b3480156104f957600080fd5b5061021e600435610e2c565b34801561051157600080fd5b5061021e600160a060020a0360043516602435610e48565b34801561053557600080fd5b5061021e600160a060020a0360043516610ea2565b34801561055657600080fd5b50610329610ef0565b34801561056b57600080fd5b5061021e610f00565b34801561058057600080fd5b50610235600435610f54565b34801561059857600080fd5b5061021e600160a060020a0360043516610f7d565b3480156105b957600080fd5b5061021e600435602435611030565b3480156105d457600080fd5b50610373600160a060020a0360043516611225565b3480156105f557600080fd5b5061021e611240565b34801561060a57600080fd5b506103736004356112c0565b34801561062257600080fd5b5061021e61154c565b34801561063757600080fd5b50610266611635565b34801561064c57600080fd5b50610658600435611690565b6040805163ffffffff9092168252519081900360200190f35b34801561067d57600080fd5b506102356004356116bd565b34801561069557600080fd5b5061021e600160a060020a03600435166024356116d8565b3480156106b957600080fd5b50610235611724565b3480156106ce57600080fd5b50610373611733565b3480156106e357600080fd5b50610329600435611739565b3480156106fb57600080fd5b50610235611808565b61021e600435602435611817565b34801561071e57600080fd5b50610235611a4d565b61021e600435602435611a5c565b600254600160a060020a0316331461074c57600080fd5b60025460a060020a900460ff161561076357600080fd5b61076d3083611b13565b151561077857600080fd5b610783308284611b33565b5050565b600154600160a060020a031681565b600a805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b505050505081565b60025460a060020a900460ff161561083b57600080fd5b6108453382611b13565b151561085057600080fd5b61085a8183611c0c565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b60008054600160a060020a031633146108c257600080fd5b81905080600160a060020a03166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561090357600080fd5b505af1158015610917573d6000803e3d6000fd5b505050506040513d602081101561092d57600080fd5b5051151561093a57600080fd5b600f8054600160a060020a031916600160a060020a039290921691909117905550565b6005546000190190565b600f54600160a060020a031681565b60025460a060020a900460ff161561098d57600080fd5b6109973382611c3a565b15156109a257600080fd5b6109ac8382611b13565b15156109b757600080fd5b6109c2838383611b33565b505050565b60008054600160a060020a031633146109df57600080fd5b81905080600160a060020a03166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b505050506040513d6020811015610a4a57600080fd5b50511515610a5757600080fd5b600d8054600160a060020a031916600160a060020a039290921691909117905550565b600054600160a060020a03163314610a9157600080fd5b600160a060020a0381161515610aa657600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610adf57600080fd5b600160a060020a0381161515610af457600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1615610b2d57600080fd5b610b373385611b13565b1515610b4257600080fd5b600e54610b59908590600160a060020a0316611c0c565b600e54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b505af1158015610bee573d6000803e3d6000fd5b5050505050505050565b600054600160a060020a03163314610c0f57600080fd5b60025460a060020a900460ff161515610c2757600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b60008080808511610c7257600080fd5b60008411610c7f57600080fd5b6005805486908110610c8d57fe5b90600052602060002090600202019150600584815481101515610cac57fe5b90600052602060002090600202019050610cc882868387611c5a565b8015610cd95750610cd98486611dda565b92505b505092915050565b60008060015b610cf261095d565b81116101f557600081815260066020526040902054600160a060020a0386811691161415610d315783821415610d2a57809250610cdc565b6001909101905b600101610cea565b600860205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610d6b57600080fd5b610d753385611b13565b1515610d8057600080fd5b610d8984611739565b1515610d9457600080fd5b600f54610dab908590600160a060020a0316611c0c565b600f54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610bda57600080fd5b600254600160a060020a03163314610e4357600080fd5b600c55565b60025460a060020a900460ff1615610e5f57600080fd5b610e693382611b13565b1515610e7457600080fd5b60009081526009602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610eb957600080fd5b600160a060020a0381161515610ece57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1681565b600154600160a060020a03163314610f1757600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f51573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a0316801515610f7857600080fd5b919050565b60008054600160a060020a03163314610f9557600080fd5b81905080600160a060020a03166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610fd657600080fd5b505af1158015610fea573d6000803e3d6000fd5b505050506040513d602081101561100057600080fd5b5051151561100d57600080fd5b600e8054600160a060020a031916600160a060020a039290921691909117905550565b600254600090819060a060020a900460ff161561104c57600080fd5b6110563385611b13565b151561106157600080fd5b61106b8385611dda565b151561107657600080fd5b600580548590811061108457fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290925061112f90611e2f565b151561113a57600080fd5b600580548490811061114857fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e08201529091506111f390611e2f565b15156111fe57600080fd5b61120a82858386611c5a565b151561121557600080fd5b61121f8484611e5f565b50505050565b600160a060020a031660009081526007602052604090205490565b600254600160a060020a03163314806112635750600054600160a060020a031633145b806112785750600154600160a060020a031633145b151561128357600080fd5b60025460a060020a900460ff161561129a57600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b600080600080600080600080600260149054906101000a900460ff161515156112e857600080fd5b600580548a9081106112f657fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff16151561132357600080fd5b604080516101008101825288548152600189015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e08201526113b490611f72565b15156113bf57600080fd5b60018701546005805460c060020a90920463ffffffff16975090879081106113e357fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a92839004811696509190041684101561143057600185015460f060020a900461ffff1693505b600d5487548654604080517f8d8b1b880000000000000000000000000000000000000000000000000000000081526004810193909352602483019190915251600160a060020a0390921691638d8b1b88916044808201926020929091908290030181600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b505050506040513d60208110156114cd57600080fd5b505160008a815260066020526040902054600189810154929550600160a060020a039091169350611516918b9160c060020a90910463ffffffff1690870161ffff168686611fa1565b60019790970180547bffffffff000000000000000000000000000000000000000000000000191690555094979650505050505050565b600254600160a060020a0316331461156357600080fd5b600e60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156115b657600080fd5b505af11580156115ca573d6000803e3d6000fd5b50505050600f60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561162157600080fd5b505af115801561121f573d6000803e3d6000fd5b600b805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561081c5780601f106107f15761010080835404028352916020019161081c565b600381600e811061169d57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b60025460a060020a900460ff16156116ef57600080fd5b600160a060020a038216151561170457600080fd5b61170e3382611b13565b151561171957600080fd5b610783338383611b33565b600254600160a060020a031681565b600c5481565b60008080831161174857600080fd5b600580548490811061175657fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e082015290915061180190611e2f565b9392505050565b600e54600160a060020a031681565b60025460009081908190819060a060020a900460ff161561183757600080fd5b6118413386611b13565b151561184c57600080fd5b61185585611739565b151561186057600080fd5b61186a8587612252565b151561187557600080fd5b600f54604080517fc55d0f56000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163c55d0f56916024808201926020929091908290030181600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b505050506040513d602081101561190657600080fd5b5051600c54909450349350600092508401831061192957600c5483039250600191505b600f54604080517f454a2ab3000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163454a2ab3918691602480830192600092919082900301818588803b15801561199057600080fd5b505af11580156119a4573d6000803e3d6000fd5b50505050506119bf8563ffffffff168763ffffffff16611e5f565b8115611a455760058054869081106119d357fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c858260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a15b505050505050565b600d54600160a060020a031681565b60025460009060a060020a900460ff1615611a7657600080fd5b600c54341015611a8557600080fd5b611a8f8383611030565b6005805484908110611a9d57fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c838260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a1505050565b600090815260066020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260076020908152604080832080546001019055858352600690915290208054600160a060020a0319169091179055831615611bc657600160a060020a03831660009081526007602090815260408083208054600019019055838352600982528083208054600160a060020a03199081169091556008909252909120805490911690555b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000918252600860205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260086020526040902054600160a060020a0391821691161490565b600081841415611c6c57506000611dd2565b6001850154608060020a900463ffffffff16821480611c9b5750600185015460a060020a900463ffffffff1682145b15611ca857506000611dd2565b6001830154608060020a900463ffffffff16841480611cd75750600183015460a060020a900463ffffffff1684145b15611ce457506000611dd2565b6001830154608060020a900463ffffffff161580611d1157506001850154608060020a900463ffffffff16155b15611d1e57506001611dd2565b60018581015490840154608060020a9182900463ffffffff90811692909104161480611d69575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b15611d7657506000611dd2565b6001808601549084015460a060020a900463ffffffff908116608060020a909204161480611dc157506001858101549084015460a060020a9182900463ffffffff9081169290910416145b15611dce57506000611dd2565b5060015b949350505050565b6000818152600660205260408082205484835290822054600160a060020a03918216911680821480610cd95750600085815260096020526040902054600160a060020a03908116908316149250505092915050565b60008160a0015163ffffffff166000148015611e59575042826040015167ffffffffffffffff1611155b92915050565b600080600583815481101515611e7157fe5b90600052602060002090600202019150600584815481101515611e9057fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff8716021790559050611ee0826122a1565b611ee9816122a1565b60008481526009602090815260408083208054600160a060020a0319908116909155868452818420805490911690558683526006825291829020548251600160a060020a0391909116815290810186905280820185905290517f6b4808987a5cecdf67d54ca5dc20664fafca80ef7195097800c12549245ab20d9181900360600190a150505050565b60008160a0015163ffffffff16600014158015611e59575050604001514267ffffffffffffffff909116111590565b6000611fab612373565b600063ffffffff881115611fbe57600080fd5b63ffffffff871115611fcf57600080fd5b61ffff861115611fde57600080fd5b505060408051610100810182528481524267ffffffffffffffff90811660208301908152600093830184815263ffffffff8b8116606086019081528b82166080870190815260a0870188815260c0880189815261ffff8e811660e08b01908152600580546001810182559c528a517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db060028e029081019190915598517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1909901805498519651955194519351915167ffffffffffffffff19909916998b16999099176fffffffffffffffff000000000000000019166801000000000000000096909a16959095029890981773ffffffff000000000000000000000000000000001916608060020a938616939093029290921777ffffffff0000000000000000000000000000000000000000191660a060020a91851691909102177bffffffff000000000000000000000000000000000000000000000000191660c060020a91841691909102177fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e060020a91861691909102177dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f060020a92909416919091029290921790559091908111156121d557600080fd5b60608281015160808085015185516040805187815263ffffffff95861660208201529490921684830152938301939093529151600160a060020a038716927f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5928290030190a261224760008583611b33565b979650505050505050565b600080600060058581548110151561226657fe5b9060005260206000209060020201915060058481548110151561228557fe5b90600052602060002090600202019050610cd982868387611c5a565b600181015460039060e060020a900461ffff16600e81106122be57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1642018160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600d81600101601c9054906101000a900461ffff1661ffff161015610f51576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff90921691909117905550565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152905600a165627a7a72305820ac49117d816ea70975855e982d734e5af0c4486800279018e819d0649808e0d80029",
  "sourceMap": "2135:26:21:-;;;-1:-1:-1;;;;;;2135:26:21;;;4302:395:23;657:5181:22;4302:395:23;4349:9;657:5181:22;4302:395:23;;;4376:9;4302:395;;4403:9;4302:395;;4430:10;4302:395;;4458:10;2135:26:21;4302:395:23;4486:7;4302:395;;4511:7;4302:395;;4536:7;4302:395;;4561:7;4302:395;;4586:8;4302:395;;4612:6;4302:395;;4636:6;4302:395;;4660:6;4302:395;;4684:6;4302:395;;;;;;;;:::i;:::-;-1:-1:-1;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;895:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1502:20:24;1472:50;;657:5181:22;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:5181:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;657:5181:22;;;-1:-1:-1;657:5181:22;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;657:5181:22;;;-1:-1:-1;657:5181:22;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;657:5181:22;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "657:5181:22:-;;;;;;;;;-1:-1:-1;;;657:5181:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3016:186:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3016:186:27;;;-1:-1:-1;;;;;3016:186:27;;;;;;;1972:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:25:21;;;;;;;;-1:-1:-1;;;;;1972:25:21;;;;;;;;;;;;;;853:36:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4787:398;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4787:398:27;-1:-1:-1;;;;;4787:398:27;;;;;;;1941:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1941:25:21;;;;980:87:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;980:87:27;;;;;;;;;;;;;;;;;;;;;;1940:475:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1940:475:22;-1:-1:-1;;;;;1940:475:22;;;;;6200:92:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6200:92:27;;;;;;;;;;;;;;;;;;;;1209:39:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1209:39:22;;;;5652:420:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5652:420:27;-1:-1:-1;;;;;5652:420:27;;;;;;;;;;;;1919:468:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1919:468:24;-1:-1:-1;;;;;1919:468:24;;;;;2924:126:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2924:126:21;-1:-1:-1;;;;;2924:126:21;;;;;3466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3466:126:21;-1:-1:-1;;;;;3466:126:21;;;;;2530:751:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2530:751:22;;;;;;;;;;;4466:126:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4466:126:21;;;;6138:56:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6138:56:23;;;;;8454:386:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8454:386:24;;;;;;;7225:452:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7225:452:27;-1:-1:-1;;;;;7225:452:27;;;;;;;5820:56:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5820:56:23;;;;;3442:802:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3442:802:22;;;;;;;;;;;5173:88:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5173:88:24;;;;;4768:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4768:187:24;-1:-1:-1;;;;;4768:187:24;;;;;;;3195:126:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3195:126:21;-1:-1:-1;;;;;3195:126:21;;;;;2135:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2135:26:21;;;;3598:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3598:94:21;;;;6427:190:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6427:190:27;;;;;1360:465:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1360:465:22;-1:-1:-1;;;;;1360:465:22;;;;;9264:1774:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9264:1774:24;;;;;;;3378:122:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3378:122:27;-1:-1:-1;;;;;3378:122:27;;;;;4202:79:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4202:79:21;;;;13649:1371:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13649:1371:24;;;;;5697:139:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5697:139:22;;;;895:27:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;895:27:27;;;;4302:395:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4302:395:23;;;;;;;;;;;;;;;;;;;;;;;;5320:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5320:53:23;;;;;3925:438:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3925:438:27;-1:-1:-1;;;;;3925:438:27;;;;;;;2003:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2003:25:21;;;;1472:50:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1472:50:24;;;;5765:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5765:207:24;;;;;921:35:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;921:35:22;;;;4492:1006;;;;;;;;1679:39:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1679:39:24;;;;12507:505;;;;;;;;3016:186:27;2559:10:21;;-1:-1:-1;;;;;2559:10:21;2545;:24;2537:33;;;;;;3883:6;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;3126:21:27;3132:4;3138:8;3126:5;:21::i;:::-;3118:30;;;;;;;;3158:37;3168:4;3174:10;3186:8;3158:9;:37::i;:::-;3016:186;;:::o;1972:25:21:-;;;-1:-1:-1;;;;;1972:25:21;;:::o;853:36:27:-;;;;;;;;;;;;;;;-1:-1:-1;;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4787:398::-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;4970:27:27;4976:10;4988:8;4970:5;:27::i;:::-;4962:36;;;;;;;;5077:23;5086:8;5096:3;5077:8;:23::i;:::-;5143:35;;5169:8;;-1:-1:-1;;;;;5143:35:27;;;5152:10;;5143:35;;;;;4787:398;;:::o;1941:25:21:-;;;-1:-1:-1;;;;;1941:25:21;;:::o;980:87:27:-;1056:4;980:87;:::o;1940:475:22:-;2016:36;2275:10:21;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;2074:8:22;2016:67;;2283:17;-1:-1:-1;;;;;2283:38:22;;:40;;;;;-1:-1:-1;;;2283:40:22;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2283:40:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2283:40:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2283:40:22;2275:49;;;;;;;;2375:13;:33;;-1:-1:-1;;;;;;2375:33:22;-1:-1:-1;;;;;2375:33:22;;;;;;;;;;-1:-1:-1;1940:475:22:o;6200:92:27:-;6267:7;:14;-1:-1:-1;;6267:18:27;6200:92;:::o;1209:39:22:-;;;-1:-1:-1;;;;;1209:39:22;;:::o;5652:420:27:-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;5859:34:27;5872:10;5884:8;5859:12;:34::i;:::-;5851:43;;;;;;;;5912:22;5918:5;5925:8;5912:5;:22::i;:::-;5904:31;;;;;;;;6034;6044:5;6051:3;6056:8;6034:9;:31::i;:::-;5652:420;;;:::o;1919:468:24:-;1993:38;2275:10:21;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;2055:8:24;1993:71;;2264:17;-1:-1:-1;;;;;2264:31:24;;:33;;;;;-1:-1:-1;;;2264:33:24;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2264:33:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2264:33:24;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2264:33:24;2256:42;;;;;;;;2349:11;:31;;-1:-1:-1;;;;;;2349:31:24;-1:-1:-1;;;;;2349:31:24;;;;;;;;;;-1:-1:-1;1919:468:24:o;2924:126:21:-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;2990:21:21;;;;2982:30;;;;;;3023:10;:20;;-1:-1:-1;;;;;;3023:20:21;-1:-1:-1;;;;;3023:20:21;;;;;;;;;;2924:126::o;3466:::-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;3532:21:21;;;;3524:30;;;;;;3565:10;:20;;-1:-1:-1;;;;;;3565:20:21;-1:-1:-1;;;;;3565:20:21;;;;;;;;;;3466:126::o;2530:751:22:-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;2908:27:22;2914:10;2926:8;2908:5;:27::i;:::-;2900:36;;;;;;;;2965:11;;2946:31;;2955:8;;-1:-1:-1;;;;;2965:11:22;2946:8;:31::i;:::-;3116:11;;:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3254:10;3116:158;;;;;;-1:-1:-1;;;;;3116:11:22;;;;:25;;:158;;;;;:11;;:158;;;;;;;;:11;;:158;;;5:2:-1;;;;30:1;27;20:12;5:2;3116:158:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3116:158:22;;;;2530:751;;;;:::o;4466:126:21:-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;4024:6;;-1:-1:-1;;;4024:6:21;;;;4016:15;;;;;;;;4571:6;:14;;-1:-1:-1;;4571:14:21;;;4466:126::o;6138:56:23:-;;;;;;;;;;;;-1:-1:-1;;;;;6138:56:23;;:::o;8454:386:24:-;8544:4;;;8572:13;;;8564:22;;;;;;8614:1;8604:11;;8596:20;;;;;;8649:7;:18;;8657:9;;8649:18;;;;;;;;;;;;;;;;8626:41;;8698:7;8706;8698:16;;;;;;;;;;;;;;;;;;;;8677:37;;8731:52;8750:6;8758:9;8769:4;8775:7;8731:18;:52::i;:::-;:102;;;;;8795:38;8814:7;8823:9;8795:18;:38::i;:::-;8724:109;;8454:386;;;;;;;:::o;7225:452:27:-;7334:15;;7409:1;7392:261;7417:13;:11;:13::i;:::-;7412:18;;7392:261;;7455:20;;;;:17;:20;;;;;;-1:-1:-1;;;;;7455:30:27;;;:20;;:30;7451:192;;;7518:6;7509:5;:15;7505:124;;;7555:1;7548:8;;;;7505:124;7603:7;;;;;7505:124;7432:3;;7392:261;;5820:56:23;;;;;;;;;;;;-1:-1:-1;;;;;5820:56:23;;:::o;3442:802:22:-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;3822:27:22;3828:10;3840:8;3822:5;:27::i;:::-;3814:36;;;;;;;;3868:24;3883:8;3868:14;:24::i;:::-;3860:33;;;;;;;;3922:13;;3903:33;;3912:8;;-1:-1:-1;;;;;3922:13:22;3903:8;:33::i;:::-;4077:13;;:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4217:10;4077:160;;;;;;-1:-1:-1;;;;;4077:13:22;;;;:27;;:160;;;;;:13;;:160;;;;;;;;:13;;:160;;;5:2:-1;;;;30:1;27;20:12;5173:88:24;2559:10:21;;-1:-1:-1;;;;;2559:10:21;2545;:24;2537:33;;;;;;5236:12:24;:18;5173:88::o;4768:187::-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;4874:26:24;4880:10;4892:7;4874:5;:26::i;:::-;4866:35;;;;;;;;4911:29;;;;:20;:29;;;;;:37;;-1:-1:-1;;;;;;4911:37:24;-1:-1:-1;;;;;4911:37:24;;;;;;;;;;4768:187::o;3195:126:21:-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;3261:21:21;;;;3253:30;;;;;;3294:10;:20;;-1:-1:-1;;;;;;3294:20:21;-1:-1:-1;;;;;3294:20:21;;;;;;;;;;3195:126::o;2135:26::-;;;-1:-1:-1;;;2135:26:21;;;;;:::o;3598:94::-;2417:10;;-1:-1:-1;;;;;2417:10:21;2403;:24;2395:33;;;;;;3652:10;;:33;;-1:-1:-1;;;;;3652:10:21;;;;3672:4;:12;3652:33;;;;;:10;:33;:10;:33;3672:12;3652:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3652:33:21;3598:94::o;6427:190:27:-;6507:13;6544:27;;;:17;:27;;;;;;-1:-1:-1;;;;;6544:27:27;6590:19;;;6582:28;;;;;;6427:190;;;:::o;1360:465:22:-;1434:34;2275:10:21;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;1488:8:22;1434:63;;1697:17;-1:-1:-1;;;;;1697:36:22;;:38;;;;;-1:-1:-1;;;1697:38:22;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1697:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1697:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1697:38:22;1689:47;;;;;;;;1787:11;:31;;-1:-1:-1;;;;;;1787:31:22;-1:-1:-1;;;;;1787:31:22;;;;;;;;;;-1:-1:-1;1360:465:22:o;9264:1774:24:-;3883:6:21;;10425:20:24;;;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;9397:28:24;9403:10;9415:9;9397:5;:28::i;:::-;9389:37;;;;;;;;10323:38;10342:7;10351:9;10323:18;:38::i;:::-;10315:47;;;;;;;;10448:7;:18;;10456:9;;10448:18;;;;;;;;;;;;;;;10567:23;;;;;;;;10448:18;;;;;;;10567:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10567:23:24;;;;;;;;-1:-1:-1;;;10567:23:24;;;;;;;;-1:-1:-1;;;10567:23:24;;;;;;;;-1:-1:-1;;;10567:23:24;;;;;;;;-1:-1:-1;;;10567:23:24;;;;;;;;;;10448:18;;-1:-1:-1;10567:23:24;;:15;:23::i;:::-;10559:32;;;;;;;;10673:7;:16;;10681:7;;10673:16;;;;;;;;;;;;;;;10788:21;;;;;;;;10673:16;;;;;;;10788:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10788:21:24;;;;;;;;-1:-1:-1;;;10788:21:24;;;;;;;;-1:-1:-1;;;10788:21:24;;;;;;;;-1:-1:-1;;;10788:21:24;;;;;;;;-1:-1:-1;;;10788:21:24;;;;;;;;;;10673:16;;-1:-1:-1;10788:21:24;;:15;:21::i;:::-;10780:30;;;;;;;;10886:52;10905:6;10913:9;10924:4;10930:7;10886:18;:52::i;:::-;10878:61;;;;;;;;11001:30;11012:9;11023:7;11001:10;:30::i;:::-;9264:1774;;;;:::o;3378:122:27:-;-1:-1:-1;;;;;3466:27:27;3434:13;3466:27;;;:19;:27;;;;;;;3378:122::o;4202:79:21:-;2661:10;;-1:-1:-1;;;;;2661:10:21;2647;:24;;:64;;-1:-1:-1;2701:10:21;;-1:-1:-1;;;;;2701:10:21;2687;:24;2647:64;:104;;;-1:-1:-1;2741:10:21;;-1:-1:-1;;;;;2741:10:21;2727;:24;2647:104;2626:135;;;;;;;;3883:6;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;4261:6;:13;;-1:-1:-1;;4261:13:21;-1:-1:-1;;;4261:13:21;;;4202:79::o;13649:1371:24:-;13728:7;13805:20;14120:14;14166:18;14282:16;14507:18;14617:13;14671:16;3883:6:21;;;;;;;;;;;3882:7;3874:16;;;;;;;;13828:7:24;:18;;13836:9;;13828:18;;;;;;;;;;;;;;;;;;;13914:16;;;;13828:18;;-1:-1:-1;13914:16:24;;:21;;13906:30;;;;;;14029:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14029:27:24;;;;;;;;-1:-1:-1;;;14029:27:24;;;;;;;;-1:-1:-1;;;14029:27:24;;;;;;;;-1:-1:-1;;;14029:27:24;;;;;;;;-1:-1:-1;;;14029:27:24;;;;;;;;;;;;:19;:27::i;:::-;14021:36;;;;;;;;14137:19;;;;14187:7;:15;;-1:-1:-1;;;14137:19:24;;;;;;-1:-1:-1;14187:7:24;14137:19;;14187:15;;;;;;;;;;;;;;14301:17;;;;;14187:15;;;;;;;14332;;;;14187;;-1:-1:-1;14301:17:24;-1:-1:-1;;;14301:17:24;;;;;;;-1:-1:-1;14332:15:24;;;;:35;-1:-1:-1;14328:93:24;;;14395:15;;;;-1:-1:-1;;;14395:15:24;;;;;-1:-1:-1;14328:93:24;14528:11;;14549:12;;14563:10;;14528:46;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14528:11:24;;;;:20;;:46;;;;;;;;;;;;;;;:11;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;14528:46:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14528:46:24;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14528:46:24;14633:28;;;;:17;14528:46;14633:28;;;;;;14714:19;;;;14528:46;;-1:-1:-1;;;;;;14633:28:24;;;;-1:-1:-1;14690:78:24;;14633:28;;-1:-1:-1;;;14714:19:24;;;;;;14735:13;;14690:78;;14528:46;14633:28;14690:12;:78::i;:::-;14930:19;;;;;14923:26;;-1:-1:-1;;14923:26:24;;;-1:-1:-1;14671:97:24;;13649:1371;-1:-1:-1;;;;;;;13649:1371:24:o;5697:139:22:-;2559:10:21;;-1:-1:-1;;;;;2559:10:21;2545;:24;2537:33;;;;;;5759:11:22;;;;;;;;;-1:-1:-1;;;;;5759:11:22;-1:-1:-1;;;;;5759:27:22;;:29;;;;;-1:-1:-1;;;5759:29:22;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5759:29:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5759:29:22;;;;5798:13;;;;;;;;;-1:-1:-1;;;;;5798:13:22;-1:-1:-1;;;;;5798:29:22;;:31;;;;;-1:-1:-1;;;5798:31:22;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5798:31:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;895::27;;;;;;;;;;;;;;;-1:-1:-1;;895:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4302:395:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5320:53::-;;;;;;;;;;;;-1:-1:-1;;;;;5320:53:23;;:::o;3925:438:27:-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;-1:-1:-1;;;;;4125:17:27;;;;4117:26;;;;;;4204:27;4210:10;4222:8;4204:5;:27::i;:::-;4196:36;;;;;;;;4320;4330:10;4342:3;4347:8;4320:9;:36::i;2003:25:21:-;;;-1:-1:-1;;;;;2003:25:21;;:::o;1472:50:24:-;;;;:::o;5765:207::-;5840:4;;5868:12;;;5860:21;;;;;;5911:7;:17;;5919:8;;5911:17;;;;;;;;;;;;;;;5945:20;;;;;;;;5911:17;;;;;;;5945:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5945:20:24;;;;;;;;-1:-1:-1;;;5945:20:24;;;;;;;;-1:-1:-1;;;5945:20:24;;;;;;;;-1:-1:-1;;;5945:20:24;;;;;;;;-1:-1:-1;;;5945:20:24;;;;;;;;;;5911:17;;-1:-1:-1;5945:20:24;;:15;:20::i;:::-;5938:27;5765:207;-1:-1:-1;;;5765:207:24:o;921:35:22:-;;;-1:-1:-1;;;;;921:35:22;;:::o;4492:1006::-;3883:6:21;;4845:17:22;;;;;;;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;4700:28:22;4706:10;4718:9;4700:5;:28::i;:::-;4692:37;;;;;;;;4747:25;4762:9;4747:14;:25::i;:::-;4739:34;;;;;;;;4791:43;4815:9;4826:7;4791:23;:43::i;:::-;4783:52;;;;;;;;4865:13;;:38;;;;;;;;;;;;;;-1:-1:-1;;;;;4865:13:22;;;;:29;;:38;;;;;;;;;;;;;;;:13;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;4865:38:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4865:38:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4865:38:22;5016:12;;4865:38;;-1:-1:-1;4933:9:22;;-1:-1:-1;4971:5:22;;-1:-1:-1;5004:24:22;;4991:37;;4987:125;;5057:12;;5044:25;;;;5097:4;5083:18;;4987:125;5177:13;;:43;;;;;;;;;;;;;;-1:-1:-1;;;;;5177:13:22;;;;:17;;5201:9;;5177:43;;;;;:13;;:43;;;;;;;5201:9;5177:13;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;5177:43:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5177:43:22;;;;;5230:46;5248:9;5230:46;;5267:7;5230:46;;:10;:46::i;:::-;5291:11;5287:205;;;5405:7;:18;;5413:9;;5405:18;;;;;;;;;;;;;;;;5382:41;;5437:44;5447:9;5458:6;:22;;;;;;;;;;;;5437:44;;;;;;;;;;;;;;;;;;;;;;;;;;5287:205;4492:1006;;;;;;:::o;1679:39:24:-;;;-1:-1:-1;;;;;1679:39:24;;:::o;12507:505::-;3883:6:21;;12905:20:24;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;12671:12:24;;12658:9;:25;;12650:34;;;;;;12744:29;12754:9;12765:7;12744:9;:29::i;:::-;12928:7;:18;;12936:9;;12928:18;;;;;;;;;;;;;;;;12905:41;;12961:44;12971:9;12982:6;:22;;;;;;;;;;;;12961:44;;;;;;;;;;;;;;;;;;;;;;;;;;12507:505;;;:::o;1480:145:27:-;1555:4;1578:27;;;:17;:27;;;;;;-1:-1:-1;;;;;1578:40:27;;;:27;;:40;;1480:145::o;6267:784:23:-;-1:-1:-1;;;;;6452:24:23;;;;;;;:19;:24;;;;;;;;:26;;;;;;6518:27;;;:17;:27;;;;;:33;;-1:-1:-1;;;;;;6518:33:23;;;;;;6651:19;;;6647:317;;-1:-1:-1;;;;;6686:26:23;;;;;;:19;:26;;;;;;;;:28;;-1:-1:-1;;6686:28:23;;;6808:30;;;:20;:30;;;;;6801:37;;-1:-1:-1;;;;;;6801:37:23;;;;;;6923:20;:30;;;;;;6916:37;;;;;;;6647:317;7035:8;7030:3;-1:-1:-1;;;;;7014:30:23;7023:5;-1:-1:-1;;;;;7014:30:23;;;;;;;;;;;6267:784;;;:::o;2457:123:27:-;2531:30;;;;:20;:30;;;;;;:42;;-1:-1:-1;;;;;;2531:42:27;-1:-1:-1;;;;;2531:42:27;;;;;;;;;2457:123::o;1859:155::-;1941:4;1964:30;;;:20;:30;;;;;;-1:-1:-1;;;;;1964:43:27;;;:30;;:43;;1859:155::o;6374:1184:24:-;6569:4;6649:7;6636:9;:20;6632:63;;;-1:-1:-1;6679:5:24;6672:12;;6632:63;6760:16;;;;-1:-1:-1;;;6760:16:24;;;;:27;;;:56;;-1:-1:-1;6791:14:24;;;;-1:-1:-1;;;6791:14:24;;;;:25;;6760:56;6756:99;;;-1:-1:-1;6839:5:24;6832:12;;6756:99;6868:14;;;;-1:-1:-1;;;6868:14:24;;;;:27;;;:56;;-1:-1:-1;6899:12:24;;;;-1:-1:-1;;;6899:12:24;;;;:25;;6868:56;6864:99;;;-1:-1:-1;6947:5:24;6940:12;;6864:99;7099:14;;;;-1:-1:-1;;;7099:14:24;;;;:19;;:44;;-1:-1:-1;7122:16:24;;;;-1:-1:-1;;;7122:16:24;;;;:21;7099:44;7095:86;;;-1:-1:-1;7166:4:24;7159:11;;7095:86;7272:16;;;;;7254:14;;;;-1:-1:-1;;;7272:16:24;;;;;;;;7254:14;;;;;:34;;:70;;-1:-1:-1;7310:14:24;;;;;7292;;;;-1:-1:-1;;;7292:14:24;;7310;7292;;;-1:-1:-1;;;7310:14:24;;;;7292:32;7254:70;7250:113;;;-1:-1:-1;7347:5:24;7340:12;;7250:113;7392:16;;;;;7376:12;;;;-1:-1:-1;;;7376:12:24;;7392:16;7376:12;;;-1:-1:-1;;;7392:16:24;;;;7376:32;;:66;;-1:-1:-1;7428:14:24;;;;;7412:12;;;;-1:-1:-1;;;7428:14:24;;;;;;;;7412:12;;;;;:30;7376:66;7372:109;;;-1:-1:-1;7465:5:24;7458:12;;7372:109;-1:-1:-1;7547:4:24;6374:1184;;;;;;;:::o;3191:441::-;3278:4;3316:28;;;:17;:28;;;;;;;3374:26;;;;;;;-1:-1:-1;;;;;3316:28:24;;;;3374:26;3552:24;;;;:72;;-1:-1:-1;3580:29:24;;;;:20;:29;;;;;;-1:-1:-1;;;;;3580:29:24;;;:44;;;;3544:81;;3191:441;;;;;;:::o;2580:378::-;2640:4;2895;:17;;;:22;;2916:1;2895:22;2894:57;;;;;2947:3;2923:4;:20;;;:27;;;;2894:57;2887:64;2580:378;-1:-1:-1;;2580:378:24:o;11172:807::-;11304:18;11351:20;11325:7;11333;11325:16;;;;;;;;;;;;;;;;;;;;11304:37;;11374:7;11382:9;11374:18;;;;;;;;;;;;;;;;;;;;;;;11477:19;;;:37;;-1:-1:-1;;11477:37:24;-1:-1:-1;;;11477:37:24;;;;;;;11374:18;-1:-1:-1;11575:22:24;11592:4;11575:16;:22::i;:::-;11607:24;11624:6;11607:16;:24::i;:::-;11784:31;;;;:20;:31;;;;;;;;11777:38;;-1:-1:-1;;;;;;11777:38:24;;;;;;11832:29;;;;;;11825:36;;;;;;;11923:28;;;:17;:28;;;;;;;11914:58;;-1:-1:-1;;;;;11923:28:24;;;;11914:58;;;;;;;;;;;;;;;;;;;;;;;;;11172:807;;;;:::o;5380:159::-;5446:4;5470:7;:20;;;:25;;5494:1;5470:25;;5469:63;;;;-1:-1:-1;;5501:23:24;;;5528:3;5501:30;;;;;;;5380:159::o;7709:1601:23:-;7900:4;8364:19;;:::i;:::-;8690;8263:10;8250:23;;;8242:32;;;;;;8303:10;8292:21;;;8284:30;;;;;;8347:5;8332:20;;;8324:29;;;;;;-1:-1:-1;;8386:294:23;;;;;;;;;;;8451:3;8386:294;;;;;;;;;;-1:-1:-1;8386:294:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8712:7;27:10:-1;;8735:1:23;23:18:-1;;45:23;;8712:20:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8712:20:23;;;;;;;;;;-1:-1:-1;;8712:20:23;;;;;;;;;;;;;;-1:-1:-1;;8712:20:23;-1:-1:-1;;;8712:20:23;;;;;;;;;;;-1:-1:-1;;8712:20:23;-1:-1:-1;;;8712:20:23;;;;;;;;-1:-1:-1;;8712:20:23;-1:-1:-1;;;8712:20:23;;;;;;;;;;-1:-1:-1;;;8712:20:23;;;;;;;;;;-1:-1:-1;;;8712:20:23;;;;;;;;;;;;;;8386:294;;27:10:-1;8893:25:23;;;8885:34;;;;;;9039:15;;;;;9077:13;;;;;9105:12;;8967:160;;;;;;9031:24;;;;8967:160;;;;9069:22;;;;8967:160;;;;;;;;;;;;;-1:-1:-1;;;;;8967:160:23;;;;;;;;;;;9241:33;9251:1;9254:6;9262:11;9241:9;:33::i;:::-;9292:11;7709:1601;-1:-1:-1;;;;;;;7709:1601:23:o;7735:288:24:-;7839:4;7859:20;7910:18;7882:7;7890:9;7882:18;;;;;;;;;;;;;;;;;;;;7859:41;;7931:7;7939;7931:16;;;;;;;;;;;;;;;;;;;;7910:37;;7964:52;7983:6;7991:9;8002:4;8008:7;7964:18;:52::i;3894:551::-;4092:21;;;;4082:9;;-1:-1:-1;;;4092:21:24;;;;4082:32;;;;;;;;;;;;;;;;;;;;;;;;;;;4076:38;;:3;:38;4043:7;:23;;;:72;;;;;;;;;;;;;;;;;;4384:2;4360:7;:21;;;;;;;;;;;;:26;;;4356:83;;;4427:1;4402:21;;;:26;;;-1:-1:-1;;;4402:26:24;;;;;;;;;;;;;;;;;;;;;;3894:551;:::o;657:5181:22:-;;;;;;;;;-1:-1:-1;657:5181:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "/* solium-disable */\n/**\n *  @title Handles creating auctions for sale and siring of kitties.\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 \"./KittyBreeding.sol\";\nimport \"./Auction/ClockAuction.sol\";\nimport \"./Auction/SiringClockAuction.sol\";\nimport \"./Auction/SaleClockAuction.sol\";\n\n/// @title Handles creating auctions for sale and siring of kitties.\n///  This wrapper of ReverseAuction exists only so that users can create\n///  auctions with only one transaction.\ncontract KittyAuction is KittyBreeding {\n\n    /// @dev The address of the ClockAuction contract that handles sales of Kitties. This\n    ///  same contract handles both peer-to-peer sales as well as the gen0 sales which are\n    ///  initiated every 15 minutes.\n    SaleClockAuction public saleAuction;\n\n    /// @dev The address of a custom ClockAution subclassed contract that handles siring\n    ///  auctions. Needs to be separate from saleAuction because the actions taken on success\n    ///  after a sales and siring auction are quite different.\n    SiringClockAuction public siringAuction;\n\n    /// @dev Sets the reference to the sale auction.\n    /// @param _address - Address of sale contract.\n    function setSaleAuctionAddress(address _address) public onlyCEO {\n        SaleClockAuction candidateContract = SaleClockAuction(_address);\n\n        // NOTE: verify that a contract is what we expect - https://github.com/Lunyr/crowdsale-contracts/blob/cfadd15986c30521d8ba7d5b6f57b4fefcc7ac38/contracts/LunyrToken.sol#L117\n        require(candidateContract.isSaleClockAuction());\n\n        // Set the new contract address\n        saleAuction = candidateContract;\n    }\n\n    /// @dev Sets the reference to the siring auction.\n    /// @param _address - Address of siring contract.\n    function setSiringAuctionAddress(address _address) public onlyCEO {\n        SiringClockAuction candidateContract = SiringClockAuction(_address);\n\n        // NOTE: verify that a contract is what we expect - https://github.com/Lunyr/crowdsale-contracts/blob/cfadd15986c30521d8ba7d5b6f57b4fefcc7ac38/contracts/LunyrToken.sol#L117\n        require(candidateContract.isSiringClockAuction());\n\n        // Set the new contract address\n        siringAuction = candidateContract;\n    }\n\n    /// @dev Put a kitty up for auction.\n    ///  Does some ownership trickery to create auctions in one tx.\n    function createSaleAuction(\n        uint256 _kittyId,\n        uint256 _startingPrice,\n        uint256 _endingPrice,\n        uint256 _duration\n    )\n        public\n        whenNotPaused\n    {\n        // Auction contract checks input sizes\n        // If kitty is already on any auction, this will throw\n        // because it will be owned by the auction contract.\n        require(_owns(msg.sender, _kittyId));\n        _approve(_kittyId, saleAuction);\n        // Sale auction throws if inputs are invalid and clears\n        // transfer and sire approval after escrowing the kitty.\n        saleAuction.createAuction(\n            _kittyId,\n            _startingPrice,\n            _endingPrice,\n            _duration,\n            msg.sender\n        );\n    }\n\n    /// @dev Put a kitty up for auction to be sire.\n    ///  Performs checks to ensure the kitty can be sired, then\n    ///  delegates to reverse auction.\n    function createSiringAuction(\n        uint256 _kittyId,\n        uint256 _startingPrice,\n        uint256 _endingPrice,\n        uint256 _duration\n    )\n        public\n        whenNotPaused\n    {\n        // Auction contract checks input sizes\n        // If kitty is already on any auction, this will throw\n        // because it will be owned by the auction contract.\n        require(_owns(msg.sender, _kittyId));\n        require(isReadyToBreed(_kittyId));\n        _approve(_kittyId, siringAuction);\n        // Siring auction throws if inputs are invalid and clears\n        // transfer and sire approval after escrowing the kitty.\n        siringAuction.createAuction(\n            _kittyId,\n            _startingPrice,\n            _endingPrice,\n            _duration,\n            msg.sender\n        );\n    }\n\n    /// @dev Completes a siring auction by bidding.\n    ///  Immediately breeds the winning matron with the sire on auction.\n    /// @param _sireId - ID of the sire on auction.\n    /// @param _matronId - ID of the matron owned by the bidder.\n    function bidOnSiringAuction(\n        uint256 _sireId,\n        uint256 _matronId\n    )\n        public\n        payable\n        whenNotPaused\n    {\n        // Auction contract checks input sizes\n        require(_owns(msg.sender, _matronId));\n        require(isReadyToBreed(_matronId));\n        require(_canBreedWithViaAuction(_matronId, _sireId));\n        uint256 currPrice = siringAuction.getCurrentPrice(_sireId);\n        uint256 bidAmount = msg.value;\n        bool doAutoBirth = false;\n\n        if (bidAmount >= currPrice + autoBirthFee) {\n            bidAmount -= autoBirthFee;\n            doAutoBirth = true;\n        }\n\n        // Siring auction will throw if the bid fails.\n        siringAuction.bid.value(bidAmount)(_sireId);\n        _breedWith(uint32(_matronId), uint32(_sireId));\n\n        if (doAutoBirth) {\n            // Auto birth fee provided, trigger autobirth event\n            Kitty storage matron = kitties[_matronId];\n            AutoBirth(_matronId, matron.cooldownEndTime);\n        }\n    }\n\n    /// @dev Transfers the balance of the sale auction contract\n    /// to the KittyCore contract. We use two-step withdrawal to\n    /// prevent two transfer calls in the auction bid function.\n    function withdrawAuctionBalances() external onlyCOO {\n        saleAuction.withdrawBalance();\n        siringAuction.withdrawBalance();\n    }\n}\n",
  "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyAuction.sol",
  "ast": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyAuction.sol",
    "exportedSymbols": {
      "KittyAuction": [
        6917
      ]
    },
    "id": 6918,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6664,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "296:24:22"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyBreeding.sol",
        "file": "./KittyBreeding.sol",
        "id": 6665,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 7795,
        "src": "322:29:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuction.sol",
        "file": "./Auction/ClockAuction.sol",
        "id": 6666,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 5705,
        "src": "352:36:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/SiringClockAuction.sol",
        "file": "./Auction/SiringClockAuction.sol",
        "id": 6667,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 6370,
        "src": "389:42:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/SaleClockAuction.sol",
        "file": "./Auction/SaleClockAuction.sol",
        "id": 6668,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 6256,
        "src": "432:40:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6669,
              "name": "KittyBreeding",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7794,
              "src": "682:13:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_KittyBreeding_$7794",
                "typeString": "contract KittyBreeding"
              }
            },
            "id": 6670,
            "nodeType": "InheritanceSpecifier",
            "src": "682:13:22"
          }
        ],
        "contractDependencies": [
          6435,
          6662,
          7168,
          7794,
          8459
        ],
        "contractKind": "contract",
        "documentation": "@title Handles creating auctions for sale and siring of kitties.\n  This wrapper of ReverseAuction exists only so that users can create\n  auctions with only one transaction.",
        "fullyImplemented": true,
        "id": 6917,
        "linearizedBaseContracts": [
          6917,
          7794,
          8459,
          6435,
          7168,
          6662
        ],
        "name": "KittyAuction",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 6672,
            "name": "saleAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6917,
            "src": "921:35:22",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
              "typeString": "contract SaleClockAuction"
            },
            "typeName": {
              "contractScope": null,
              "id": 6671,
              "name": "SaleClockAuction",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6255,
              "src": "921:16:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                "typeString": "contract SaleClockAuction"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6674,
            "name": "siringAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6917,
            "src": "1209:39:22",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
              "typeString": "contract SiringClockAuction"
            },
            "typeName": {
              "contractScope": null,
              "id": 6673,
              "name": "SiringClockAuction",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6369,
              "src": "1209:18:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                "typeString": "contract SiringClockAuction"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6697,
              "nodeType": "Block",
              "src": "1424:401:22",
              "statements": [
                {
                  "assignments": [
                    6682
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6682,
                      "name": "candidateContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 6698,
                      "src": "1434:34:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                        "typeString": "contract SaleClockAuction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 6681,
                        "name": "SaleClockAuction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6255,
                        "src": "1434:16:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6686,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6684,
                        "name": "_address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6676,
                        "src": "1488:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6683,
                      "name": "SaleClockAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6255,
                      "src": "1471:16:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_SaleClockAuction_$6255_$",
                        "typeString": "type(contract SaleClockAuction)"
                      }
                    },
                    "id": 6685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1471:26:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                      "typeString": "contract SaleClockAuction"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1434:63:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 6688,
                            "name": "candidateContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6682,
                            "src": "1697:17:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                              "typeString": "contract SaleClockAuction"
                            }
                          },
                          "id": 6689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isSaleClockAuction",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6099,
                          "src": "1697:36:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                            "typeString": "function () view external returns (bool)"
                          }
                        },
                        "id": 6690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1697:38:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6687,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1689:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1689:47:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6692,
                  "nodeType": "ExpressionStatement",
                  "src": "1689:47:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6693,
                      "name": "saleAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6672,
                      "src": "1787:11:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                        "typeString": "contract SaleClockAuction"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6694,
                      "name": "candidateContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6682,
                      "src": "1801:17:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                        "typeString": "contract SaleClockAuction"
                      }
                    },
                    "src": "1787:31:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                      "typeString": "contract SaleClockAuction"
                    }
                  },
                  "id": 6696,
                  "nodeType": "ExpressionStatement",
                  "src": "1787:31:22"
                }
              ]
            },
            "documentation": "@dev Sets the reference to the sale auction.\n @param _address - Address of sale contract.",
            "id": 6698,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6679,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6678,
                  "name": "onlyCEO",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6504,
                  "src": "1416:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1416:7:22"
              }
            ],
            "name": "setSaleAuctionAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6677,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6676,
                  "name": "_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 6698,
                  "src": "1391:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6675,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1390:18:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6680,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1424:0:22"
            },
            "scope": 6917,
            "src": "1360:465:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6721,
              "nodeType": "Block",
              "src": "2006:409:22",
              "statements": [
                {
                  "assignments": [
                    6706
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6706,
                      "name": "candidateContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 6722,
                      "src": "2016:36:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                        "typeString": "contract SiringClockAuction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 6705,
                        "name": "SiringClockAuction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6369,
                        "src": "2016:18:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6710,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6708,
                        "name": "_address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6700,
                        "src": "2074:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6707,
                      "name": "SiringClockAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6369,
                      "src": "2055:18:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_SiringClockAuction_$6369_$",
                        "typeString": "type(contract SiringClockAuction)"
                      }
                    },
                    "id": 6709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2055:28:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                      "typeString": "contract SiringClockAuction"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2016:67:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 6712,
                            "name": "candidateContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6706,
                            "src": "2283:17:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                              "typeString": "contract SiringClockAuction"
                            }
                          },
                          "id": 6713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isSiringClockAuction",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6263,
                          "src": "2283:38:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                            "typeString": "function () view external returns (bool)"
                          }
                        },
                        "id": 6714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2283:40:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6711,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "2275:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6715,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2275:49:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6716,
                  "nodeType": "ExpressionStatement",
                  "src": "2275:49:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6717,
                      "name": "siringAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6674,
                      "src": "2375:13:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                        "typeString": "contract SiringClockAuction"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6718,
                      "name": "candidateContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6706,
                      "src": "2391:17:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                        "typeString": "contract SiringClockAuction"
                      }
                    },
                    "src": "2375:33:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                      "typeString": "contract SiringClockAuction"
                    }
                  },
                  "id": 6720,
                  "nodeType": "ExpressionStatement",
                  "src": "2375:33:22"
                }
              ]
            },
            "documentation": "@dev Sets the reference to the siring auction.\n @param _address - Address of siring contract.",
            "id": 6722,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6703,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6702,
                  "name": "onlyCEO",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6504,
                  "src": "1998:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1998:7:22"
              }
            ],
            "name": "setSiringAuctionAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6700,
                  "name": "_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 6722,
                  "src": "1973:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6699,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1973:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1972:18:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6704,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2006:0:22"
            },
            "scope": 6917,
            "src": "1940:475:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6759,
              "nodeType": "Block",
              "src": "2719:562:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6737,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "2914:3:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6738,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2914:10:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6739,
                            "name": "_kittyId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6724,
                            "src": "2926:8:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6736,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8214,
                          "src": "2908:5:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 6740,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2908:27:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6735,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "2900:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2900:36:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6742,
                  "nodeType": "ExpressionStatement",
                  "src": "2900:36:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6744,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6724,
                        "src": "2955:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6745,
                        "name": "saleAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6672,
                        "src": "2965:11:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      ],
                      "id": 6743,
                      "name": "_approve",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8244,
                      "src": "2946:8:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 6746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2946:31:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6747,
                  "nodeType": "ExpressionStatement",
                  "src": "2946:31:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6751,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6724,
                        "src": "3155:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6752,
                        "name": "_startingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6726,
                        "src": "3177:14:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6753,
                        "name": "_endingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6728,
                        "src": "3205:12:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6754,
                        "name": "_duration",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6730,
                        "src": "3231:9:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6755,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "3254:3:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3254:10:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6748,
                        "name": "saleAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6672,
                        "src": "3116:11:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      },
                      "id": 6750,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createAuction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6177,
                      "src": "3116:25:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256,uint256,address) external"
                      }
                    },
                    "id": 6757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3116:158:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6758,
                  "nodeType": "ExpressionStatement",
                  "src": "3116:158:22"
                }
              ]
            },
            "documentation": "@dev Put a kitty up for auction.\n  Does some ownership trickery to create auctions in one tx.",
            "id": 6760,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6733,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6732,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6629,
                  "src": "2701:13:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2701:13:22"
              }
            ],
            "name": "createSaleAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6724,
                  "name": "_kittyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2566:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6723,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2566:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6726,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2592:22:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6725,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2592:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6728,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2624:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6727,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2624:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6730,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2654:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2654:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2556:121:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6734,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2719:0:22"
            },
            "scope": 6917,
            "src": "2530:751:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6803,
              "nodeType": "Block",
              "src": "3633:611:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6775,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "3828:3:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6776,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3828:10:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6777,
                            "name": "_kittyId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6762,
                            "src": "3840:8:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6774,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8214,
                          "src": "3822:5:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 6778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3822:27:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6773,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3814:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6779,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3814:36:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6780,
                  "nodeType": "ExpressionStatement",
                  "src": "3814:36:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6783,
                            "name": "_kittyId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6762,
                            "src": "3883:8:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6782,
                          "name": "isReadyToBreed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7383,
                          "src": "3868:14:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 6784,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3868:24:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6781,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3860:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6785,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3860:33:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6786,
                  "nodeType": "ExpressionStatement",
                  "src": "3860:33:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6788,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6762,
                        "src": "3912:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6789,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "3922:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      ],
                      "id": 6787,
                      "name": "_approve",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8244,
                      "src": "3903:8:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 6790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3903:33:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6791,
                  "nodeType": "ExpressionStatement",
                  "src": "3903:33:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6795,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6762,
                        "src": "4118:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6796,
                        "name": "_startingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6764,
                        "src": "4140:14:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6797,
                        "name": "_endingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6766,
                        "src": "4168:12:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6798,
                        "name": "_duration",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6768,
                        "src": "4194:9:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6799,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "4217:3:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4217:10:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6792,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "4077:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "id": 6794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createAuction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6335,
                      "src": "4077:27:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256,uint256,address) external"
                      }
                    },
                    "id": 6801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4077:160:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6802,
                  "nodeType": "ExpressionStatement",
                  "src": "4077:160:22"
                }
              ]
            },
            "documentation": "@dev Put a kitty up for auction to be sire.\n  Performs checks to ensure the kitty can be sired, then\n  delegates to reverse auction.",
            "id": 6804,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6771,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6770,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6629,
                  "src": "3615:13:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3615:13:22"
              }
            ],
            "name": "createSiringAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6769,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6762,
                  "name": "_kittyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3480:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6761,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3480:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6764,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3506:22:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6763,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3506:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6766,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3538:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6765,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3538:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6768,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3568:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6767,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3568:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3470:121:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6772,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3633:0:22"
            },
            "scope": 6917,
            "src": "3442:802:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6899,
              "nodeType": "Block",
              "src": "4635:863:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6815,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "4706:3:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6816,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4706:10:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6817,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "4718:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6814,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8214,
                          "src": "4700:5:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 6818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4700:28:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6813,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4692:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4692:37:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6820,
                  "nodeType": "ExpressionStatement",
                  "src": "4692:37:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6823,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "4762:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6822,
                          "name": "isReadyToBreed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7383,
                          "src": "4747:14:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 6824,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4747:25:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6821,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4739:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4739:34:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6826,
                  "nodeType": "ExpressionStatement",
                  "src": "4739:34:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6829,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "4815:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6830,
                            "name": "_sireId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6806,
                            "src": "4826:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6828,
                          "name": "_canBreedWithViaAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7504,
                          "src": "4791:23:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256,uint256) view returns (bool)"
                          }
                        },
                        "id": 6831,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4791:43:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6827,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4783:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6832,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4783:52:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6833,
                  "nodeType": "ExpressionStatement",
                  "src": "4783:52:22"
                },
                {
                  "assignments": [
                    6835
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6835,
                      "name": "currPrice",
                      "nodeType": "VariableDeclaration",
                      "scope": 6900,
                      "src": "4845:17:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6834,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4845:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6840,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6838,
                        "name": "_sireId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6806,
                        "src": "4895:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6836,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "4865:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "id": 6837,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCurrentPrice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5703,
                      "src": "4865:29:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4865:38:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4845:58:22"
                },
                {
                  "assignments": [
                    6842
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6842,
                      "name": "bidAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 6900,
                      "src": "4913:17:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6841,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4913:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6845,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 6843,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20639,
                      "src": "4933:3:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 6844,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "4933:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4913:29:22"
                },
                {
                  "assignments": [
                    6847
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6847,
                      "name": "doAutoBirth",
                      "nodeType": "VariableDeclaration",
                      "scope": 6900,
                      "src": "4952:16:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 6846,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "4952:4:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6849,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 6848,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4971:5:22",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4952:24:22"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6854,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6850,
                      "name": "bidAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6842,
                      "src": "4991:9:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6853,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 6851,
                        "name": "currPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6835,
                        "src": "5004:9:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 6852,
                        "name": "autoBirthFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7193,
                        "src": "5016:12:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5004:24:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4991:37:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6864,
                  "nodeType": "IfStatement",
                  "src": "4987:125:22",
                  "trueBody": {
                    "id": 6863,
                    "nodeType": "Block",
                    "src": "5030:82:22",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6857,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6855,
                            "name": "bidAmount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6842,
                            "src": "5044:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6856,
                            "name": "autoBirthFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7193,
                            "src": "5057:12:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5044:25:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6858,
                        "nodeType": "ExpressionStatement",
                        "src": "5044:25:22"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6859,
                            "name": "doAutoBirth",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6847,
                            "src": "5083:11:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 6860,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5097:4:22",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "5083:18:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6862,
                        "nodeType": "ExpressionStatement",
                        "src": "5083:18:22"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6872,
                        "name": "_sireId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6806,
                        "src": "5212:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6870,
                          "name": "bidAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6842,
                          "src": "5201:9:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6865,
                            "name": "siringAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6674,
                            "src": "5177:13:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                              "typeString": "contract SiringClockAuction"
                            }
                          },
                          "id": 6868,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6368,
                          "src": "5177:17:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_payable$_t_uint256_$returns$__$",
                            "typeString": "function (uint256) payable external"
                          }
                        },
                        "id": 6869,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5177:23:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$returns$__$value_$",
                          "typeString": "function (uint256) returns (function (uint256) payable external)"
                        }
                      },
                      "id": 6871,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5177:34:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$_t_uint256_$returns$__$value",
                        "typeString": "function (uint256) payable external"
                      }
                    },
                    "id": 6873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5177:43:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6874,
                  "nodeType": "ExpressionStatement",
                  "src": "5177:43:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6877,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "5248:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5241:6:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 6878,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5241:17:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6880,
                            "name": "_sireId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6806,
                            "src": "5267:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5260:6:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 6881,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5260:15:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 6875,
                      "name": "_breedWith",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7667,
                      "src": "5230:10:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 6882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5230:46:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6883,
                  "nodeType": "ExpressionStatement",
                  "src": "5230:46:22"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 6884,
                    "name": "doAutoBirth",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6847,
                    "src": "5291:11:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6898,
                  "nodeType": "IfStatement",
                  "src": "5287:205:22",
                  "trueBody": {
                    "id": 6897,
                    "nodeType": "Block",
                    "src": "5304:188:22",
                    "statements": [
                      {
                        "assignments": [
                          6886
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6886,
                            "name": "matron",
                            "nodeType": "VariableDeclaration",
                            "scope": 6900,
                            "src": "5382:20:22",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                              "typeString": "struct KittyBase.Kitty"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 6885,
                              "name": "Kitty",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6959,
                              "src": "5382:5:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                                "typeString": "struct KittyBase.Kitty"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6890,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6887,
                            "name": "kitties",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7009,
                            "src": "5405:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
                              "typeString": "struct KittyBase.Kitty storage ref[] storage ref"
                            }
                          },
                          "id": 6889,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6888,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "5413:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5405:18:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Kitty_$6959_storage",
                            "typeString": "struct KittyBase.Kitty storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5382:41:22"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6892,
                              "name": "_matronId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6808,
                              "src": "5447:9:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6893,
                                "name": "matron",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6886,
                                "src": "5458:6:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                                  "typeString": "struct KittyBase.Kitty storage pointer"
                                }
                              },
                              "id": 6894,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "cooldownEndTime",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6948,
                              "src": "5458:22:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 6891,
                            "name": "AutoBirth",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7188,
                            "src": "5437:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 6895,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5437:44:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6896,
                        "nodeType": "ExpressionStatement",
                        "src": "5437:44:22"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Completes a siring auction by bidding.\n  Immediately breeds the winning matron with the sire on auction.\n @param _sireId - ID of the sire on auction.\n @param _matronId - ID of the matron owned by the bidder.",
            "id": 6900,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6811,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6810,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6629,
                  "src": "4617:13:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4617:13:22"
              }
            ],
            "name": "bidOnSiringAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6809,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6806,
                  "name": "_sireId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6900,
                  "src": "4529:15:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6805,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4529:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6808,
                  "name": "_matronId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6900,
                  "src": "4554:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6807,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4554:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4519:58:22"
            },
            "payable": true,
            "returnParameters": {
              "id": 6812,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4635:0:22"
            },
            "scope": 6917,
            "src": "4492:1006:22",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6915,
              "nodeType": "Block",
              "src": "5749:87:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6905,
                        "name": "saleAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6672,
                        "src": "5759:11:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      },
                      "id": 6907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "withdrawBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5494,
                      "src": "5759:27:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 6908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5759:29:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6909,
                  "nodeType": "ExpressionStatement",
                  "src": "5759:29:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6910,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "5798:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "id": 6912,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "withdrawBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5494,
                      "src": "5798:29:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 6913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5798:31:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6914,
                  "nodeType": "ExpressionStatement",
                  "src": "5798:31:22"
                }
              ]
            },
            "documentation": "@dev Transfers the balance of the sale auction contract\n to the KittyCore contract. We use two-step withdrawal to\n prevent two transfer calls in the auction bid function.",
            "id": 6916,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6903,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6902,
                  "name": "onlyCOO",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6526,
                  "src": "5741:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5741:7:22"
              }
            ],
            "name": "withdrawAuctionBalances",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6901,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5729:2:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6904,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5749:0:22"
            },
            "scope": 6917,
            "src": "5697:139:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 6918,
        "src": "657:5181:22"
      }
    ],
    "src": "296:5543:22"
  },
  "legacyAST": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyAuction.sol",
    "exportedSymbols": {
      "KittyAuction": [
        6917
      ]
    },
    "id": 6918,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6664,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "296:24:22"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyBreeding.sol",
        "file": "./KittyBreeding.sol",
        "id": 6665,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 7795,
        "src": "322:29:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuction.sol",
        "file": "./Auction/ClockAuction.sol",
        "id": 6666,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 5705,
        "src": "352:36:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/SiringClockAuction.sol",
        "file": "./Auction/SiringClockAuction.sol",
        "id": 6667,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 6370,
        "src": "389:42:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/SaleClockAuction.sol",
        "file": "./Auction/SaleClockAuction.sol",
        "id": 6668,
        "nodeType": "ImportDirective",
        "scope": 6918,
        "sourceUnit": 6256,
        "src": "432:40:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6669,
              "name": "KittyBreeding",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7794,
              "src": "682:13:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_KittyBreeding_$7794",
                "typeString": "contract KittyBreeding"
              }
            },
            "id": 6670,
            "nodeType": "InheritanceSpecifier",
            "src": "682:13:22"
          }
        ],
        "contractDependencies": [
          6435,
          6662,
          7168,
          7794,
          8459
        ],
        "contractKind": "contract",
        "documentation": "@title Handles creating auctions for sale and siring of kitties.\n  This wrapper of ReverseAuction exists only so that users can create\n  auctions with only one transaction.",
        "fullyImplemented": true,
        "id": 6917,
        "linearizedBaseContracts": [
          6917,
          7794,
          8459,
          6435,
          7168,
          6662
        ],
        "name": "KittyAuction",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 6672,
            "name": "saleAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6917,
            "src": "921:35:22",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
              "typeString": "contract SaleClockAuction"
            },
            "typeName": {
              "contractScope": null,
              "id": 6671,
              "name": "SaleClockAuction",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6255,
              "src": "921:16:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                "typeString": "contract SaleClockAuction"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6674,
            "name": "siringAuction",
            "nodeType": "VariableDeclaration",
            "scope": 6917,
            "src": "1209:39:22",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
              "typeString": "contract SiringClockAuction"
            },
            "typeName": {
              "contractScope": null,
              "id": 6673,
              "name": "SiringClockAuction",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6369,
              "src": "1209:18:22",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                "typeString": "contract SiringClockAuction"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6697,
              "nodeType": "Block",
              "src": "1424:401:22",
              "statements": [
                {
                  "assignments": [
                    6682
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6682,
                      "name": "candidateContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 6698,
                      "src": "1434:34:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                        "typeString": "contract SaleClockAuction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 6681,
                        "name": "SaleClockAuction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6255,
                        "src": "1434:16:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6686,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6684,
                        "name": "_address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6676,
                        "src": "1488:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6683,
                      "name": "SaleClockAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6255,
                      "src": "1471:16:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_SaleClockAuction_$6255_$",
                        "typeString": "type(contract SaleClockAuction)"
                      }
                    },
                    "id": 6685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1471:26:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                      "typeString": "contract SaleClockAuction"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1434:63:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 6688,
                            "name": "candidateContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6682,
                            "src": "1697:17:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                              "typeString": "contract SaleClockAuction"
                            }
                          },
                          "id": 6689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isSaleClockAuction",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6099,
                          "src": "1697:36:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                            "typeString": "function () view external returns (bool)"
                          }
                        },
                        "id": 6690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1697:38:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6687,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1689:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1689:47:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6692,
                  "nodeType": "ExpressionStatement",
                  "src": "1689:47:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6693,
                      "name": "saleAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6672,
                      "src": "1787:11:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                        "typeString": "contract SaleClockAuction"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6694,
                      "name": "candidateContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6682,
                      "src": "1801:17:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                        "typeString": "contract SaleClockAuction"
                      }
                    },
                    "src": "1787:31:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                      "typeString": "contract SaleClockAuction"
                    }
                  },
                  "id": 6696,
                  "nodeType": "ExpressionStatement",
                  "src": "1787:31:22"
                }
              ]
            },
            "documentation": "@dev Sets the reference to the sale auction.\n @param _address - Address of sale contract.",
            "id": 6698,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6679,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6678,
                  "name": "onlyCEO",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6504,
                  "src": "1416:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1416:7:22"
              }
            ],
            "name": "setSaleAuctionAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6677,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6676,
                  "name": "_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 6698,
                  "src": "1391:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6675,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1390:18:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6680,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1424:0:22"
            },
            "scope": 6917,
            "src": "1360:465:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6721,
              "nodeType": "Block",
              "src": "2006:409:22",
              "statements": [
                {
                  "assignments": [
                    6706
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6706,
                      "name": "candidateContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 6722,
                      "src": "2016:36:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                        "typeString": "contract SiringClockAuction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 6705,
                        "name": "SiringClockAuction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6369,
                        "src": "2016:18:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6710,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6708,
                        "name": "_address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6700,
                        "src": "2074:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6707,
                      "name": "SiringClockAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6369,
                      "src": "2055:18:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_SiringClockAuction_$6369_$",
                        "typeString": "type(contract SiringClockAuction)"
                      }
                    },
                    "id": 6709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2055:28:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                      "typeString": "contract SiringClockAuction"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2016:67:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 6712,
                            "name": "candidateContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6706,
                            "src": "2283:17:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                              "typeString": "contract SiringClockAuction"
                            }
                          },
                          "id": 6713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isSiringClockAuction",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6263,
                          "src": "2283:38:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                            "typeString": "function () view external returns (bool)"
                          }
                        },
                        "id": 6714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2283:40:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6711,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "2275:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6715,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2275:49:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6716,
                  "nodeType": "ExpressionStatement",
                  "src": "2275:49:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6717,
                      "name": "siringAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6674,
                      "src": "2375:13:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                        "typeString": "contract SiringClockAuction"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 6718,
                      "name": "candidateContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6706,
                      "src": "2391:17:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                        "typeString": "contract SiringClockAuction"
                      }
                    },
                    "src": "2375:33:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                      "typeString": "contract SiringClockAuction"
                    }
                  },
                  "id": 6720,
                  "nodeType": "ExpressionStatement",
                  "src": "2375:33:22"
                }
              ]
            },
            "documentation": "@dev Sets the reference to the siring auction.\n @param _address - Address of siring contract.",
            "id": 6722,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6703,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6702,
                  "name": "onlyCEO",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6504,
                  "src": "1998:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1998:7:22"
              }
            ],
            "name": "setSiringAuctionAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6701,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6700,
                  "name": "_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 6722,
                  "src": "1973:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6699,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1973:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1972:18:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6704,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2006:0:22"
            },
            "scope": 6917,
            "src": "1940:475:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6759,
              "nodeType": "Block",
              "src": "2719:562:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6737,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "2914:3:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6738,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2914:10:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6739,
                            "name": "_kittyId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6724,
                            "src": "2926:8:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6736,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8214,
                          "src": "2908:5:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 6740,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2908:27:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6735,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "2900:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2900:36:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6742,
                  "nodeType": "ExpressionStatement",
                  "src": "2900:36:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6744,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6724,
                        "src": "2955:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6745,
                        "name": "saleAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6672,
                        "src": "2965:11:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      ],
                      "id": 6743,
                      "name": "_approve",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8244,
                      "src": "2946:8:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 6746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2946:31:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6747,
                  "nodeType": "ExpressionStatement",
                  "src": "2946:31:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6751,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6724,
                        "src": "3155:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6752,
                        "name": "_startingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6726,
                        "src": "3177:14:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6753,
                        "name": "_endingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6728,
                        "src": "3205:12:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6754,
                        "name": "_duration",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6730,
                        "src": "3231:9:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6755,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "3254:3:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3254:10:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6748,
                        "name": "saleAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6672,
                        "src": "3116:11:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      },
                      "id": 6750,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createAuction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6177,
                      "src": "3116:25:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256,uint256,address) external"
                      }
                    },
                    "id": 6757,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3116:158:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6758,
                  "nodeType": "ExpressionStatement",
                  "src": "3116:158:22"
                }
              ]
            },
            "documentation": "@dev Put a kitty up for auction.\n  Does some ownership trickery to create auctions in one tx.",
            "id": 6760,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6733,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6732,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6629,
                  "src": "2701:13:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2701:13:22"
              }
            ],
            "name": "createSaleAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6724,
                  "name": "_kittyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2566:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6723,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2566:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6726,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2592:22:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6725,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2592:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6728,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2624:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6727,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2624:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6730,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6760,
                  "src": "2654:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6729,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2654:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2556:121:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6734,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2719:0:22"
            },
            "scope": 6917,
            "src": "2530:751:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6803,
              "nodeType": "Block",
              "src": "3633:611:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6775,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "3828:3:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6776,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "3828:10:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6777,
                            "name": "_kittyId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6762,
                            "src": "3840:8:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6774,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8214,
                          "src": "3822:5:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 6778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3822:27:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6773,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3814:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6779,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3814:36:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6780,
                  "nodeType": "ExpressionStatement",
                  "src": "3814:36:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6783,
                            "name": "_kittyId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6762,
                            "src": "3883:8:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6782,
                          "name": "isReadyToBreed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7383,
                          "src": "3868:14:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 6784,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3868:24:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6781,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3860:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6785,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3860:33:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6786,
                  "nodeType": "ExpressionStatement",
                  "src": "3860:33:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6788,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6762,
                        "src": "3912:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6789,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "3922:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      ],
                      "id": 6787,
                      "name": "_approve",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8244,
                      "src": "3903:8:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 6790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3903:33:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6791,
                  "nodeType": "ExpressionStatement",
                  "src": "3903:33:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6795,
                        "name": "_kittyId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6762,
                        "src": "4118:8:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6796,
                        "name": "_startingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6764,
                        "src": "4140:14:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6797,
                        "name": "_endingPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6766,
                        "src": "4168:12:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6798,
                        "name": "_duration",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6768,
                        "src": "4194:9:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6799,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "4217:3:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 6800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4217:10:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6792,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "4077:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "id": 6794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createAuction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6335,
                      "src": "4077:27:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,uint256,uint256,uint256,address) external"
                      }
                    },
                    "id": 6801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4077:160:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6802,
                  "nodeType": "ExpressionStatement",
                  "src": "4077:160:22"
                }
              ]
            },
            "documentation": "@dev Put a kitty up for auction to be sire.\n  Performs checks to ensure the kitty can be sired, then\n  delegates to reverse auction.",
            "id": 6804,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6771,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6770,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6629,
                  "src": "3615:13:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3615:13:22"
              }
            ],
            "name": "createSiringAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6769,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6762,
                  "name": "_kittyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3480:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6761,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3480:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6764,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3506:22:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6763,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3506:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6766,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3538:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6765,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3538:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6768,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 6804,
                  "src": "3568:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6767,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3568:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3470:121:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6772,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3633:0:22"
            },
            "scope": 6917,
            "src": "3442:802:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6899,
              "nodeType": "Block",
              "src": "4635:863:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6815,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "4706:3:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6816,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "4706:10:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6817,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "4718:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6814,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8214,
                          "src": "4700:5:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 6818,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4700:28:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6813,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4692:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4692:37:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6820,
                  "nodeType": "ExpressionStatement",
                  "src": "4692:37:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6823,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "4762:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6822,
                          "name": "isReadyToBreed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7383,
                          "src": "4747:14:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256) view returns (bool)"
                          }
                        },
                        "id": 6824,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4747:25:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6821,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4739:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4739:34:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6826,
                  "nodeType": "ExpressionStatement",
                  "src": "4739:34:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6829,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "4815:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 6830,
                            "name": "_sireId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6806,
                            "src": "4826:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6828,
                          "name": "_canBreedWithViaAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7504,
                          "src": "4791:23:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (uint256,uint256) view returns (bool)"
                          }
                        },
                        "id": 6831,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4791:43:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6827,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4783:7:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6832,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4783:52:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6833,
                  "nodeType": "ExpressionStatement",
                  "src": "4783:52:22"
                },
                {
                  "assignments": [
                    6835
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6835,
                      "name": "currPrice",
                      "nodeType": "VariableDeclaration",
                      "scope": 6900,
                      "src": "4845:17:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6834,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4845:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6840,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6838,
                        "name": "_sireId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6806,
                        "src": "4895:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6836,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "4865:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "id": 6837,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCurrentPrice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5703,
                      "src": "4865:29:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4865:38:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4845:58:22"
                },
                {
                  "assignments": [
                    6842
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6842,
                      "name": "bidAmount",
                      "nodeType": "VariableDeclaration",
                      "scope": 6900,
                      "src": "4913:17:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6841,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4913:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6845,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 6843,
                      "name": "msg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 20639,
                      "src": "4933:3:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_message",
                        "typeString": "msg"
                      }
                    },
                    "id": 6844,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "4933:9:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4913:29:22"
                },
                {
                  "assignments": [
                    6847
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6847,
                      "name": "doAutoBirth",
                      "nodeType": "VariableDeclaration",
                      "scope": 6900,
                      "src": "4952:16:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 6846,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "4952:4:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6849,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 6848,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4971:5:22",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4952:24:22"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6854,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6850,
                      "name": "bidAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6842,
                      "src": "4991:9:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6853,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 6851,
                        "name": "currPrice",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6835,
                        "src": "5004:9:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 6852,
                        "name": "autoBirthFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7193,
                        "src": "5016:12:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5004:24:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4991:37:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6864,
                  "nodeType": "IfStatement",
                  "src": "4987:125:22",
                  "trueBody": {
                    "id": 6863,
                    "nodeType": "Block",
                    "src": "5030:82:22",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6857,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6855,
                            "name": "bidAmount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6842,
                            "src": "5044:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 6856,
                            "name": "autoBirthFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7193,
                            "src": "5057:12:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5044:25:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6858,
                        "nodeType": "ExpressionStatement",
                        "src": "5044:25:22"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6859,
                            "name": "doAutoBirth",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6847,
                            "src": "5083:11:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 6860,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5097:4:22",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "5083:18:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6862,
                        "nodeType": "ExpressionStatement",
                        "src": "5083:18:22"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6872,
                        "name": "_sireId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6806,
                        "src": "5212:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6870,
                          "name": "bidAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6842,
                          "src": "5201:9:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6865,
                            "name": "siringAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6674,
                            "src": "5177:13:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                              "typeString": "contract SiringClockAuction"
                            }
                          },
                          "id": 6868,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "bid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6368,
                          "src": "5177:17:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_payable$_t_uint256_$returns$__$",
                            "typeString": "function (uint256) payable external"
                          }
                        },
                        "id": 6869,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5177:23:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_uint256_$returns$__$value_$",
                          "typeString": "function (uint256) returns (function (uint256) payable external)"
                        }
                      },
                      "id": 6871,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5177:34:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$_t_uint256_$returns$__$value",
                        "typeString": "function (uint256) payable external"
                      }
                    },
                    "id": 6873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5177:43:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6874,
                  "nodeType": "ExpressionStatement",
                  "src": "5177:43:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6877,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "5248:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5241:6:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 6878,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5241:17:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6880,
                            "name": "_sireId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6806,
                            "src": "5267:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5260:6:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint32_$",
                            "typeString": "type(uint32)"
                          },
                          "typeName": "uint32"
                        },
                        "id": 6881,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5260:15:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "id": 6875,
                      "name": "_breedWith",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7667,
                      "src": "5230:10:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 6882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5230:46:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6883,
                  "nodeType": "ExpressionStatement",
                  "src": "5230:46:22"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 6884,
                    "name": "doAutoBirth",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6847,
                    "src": "5291:11:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6898,
                  "nodeType": "IfStatement",
                  "src": "5287:205:22",
                  "trueBody": {
                    "id": 6897,
                    "nodeType": "Block",
                    "src": "5304:188:22",
                    "statements": [
                      {
                        "assignments": [
                          6886
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6886,
                            "name": "matron",
                            "nodeType": "VariableDeclaration",
                            "scope": 6900,
                            "src": "5382:20:22",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                              "typeString": "struct KittyBase.Kitty"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 6885,
                              "name": "Kitty",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6959,
                              "src": "5382:5:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                                "typeString": "struct KittyBase.Kitty"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6890,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6887,
                            "name": "kitties",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7009,
                            "src": "5405:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
                              "typeString": "struct KittyBase.Kitty storage ref[] storage ref"
                            }
                          },
                          "id": 6889,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6888,
                            "name": "_matronId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6808,
                            "src": "5413:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5405:18:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Kitty_$6959_storage",
                            "typeString": "struct KittyBase.Kitty storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5382:41:22"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6892,
                              "name": "_matronId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6808,
                              "src": "5447:9:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6893,
                                "name": "matron",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6886,
                                "src": "5458:6:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Kitty_$6959_storage_ptr",
                                  "typeString": "struct KittyBase.Kitty storage pointer"
                                }
                              },
                              "id": 6894,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "cooldownEndTime",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6948,
                              "src": "5458:22:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 6891,
                            "name": "AutoBirth",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7188,
                            "src": "5437:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 6895,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5437:44:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6896,
                        "nodeType": "ExpressionStatement",
                        "src": "5437:44:22"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Completes a siring auction by bidding.\n  Immediately breeds the winning matron with the sire on auction.\n @param _sireId - ID of the sire on auction.\n @param _matronId - ID of the matron owned by the bidder.",
            "id": 6900,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6811,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6810,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6629,
                  "src": "4617:13:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4617:13:22"
              }
            ],
            "name": "bidOnSiringAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6809,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6806,
                  "name": "_sireId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6900,
                  "src": "4529:15:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6805,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4529:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6808,
                  "name": "_matronId",
                  "nodeType": "VariableDeclaration",
                  "scope": 6900,
                  "src": "4554:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6807,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4554:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4519:58:22"
            },
            "payable": true,
            "returnParameters": {
              "id": 6812,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4635:0:22"
            },
            "scope": 6917,
            "src": "4492:1006:22",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6915,
              "nodeType": "Block",
              "src": "5749:87:22",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6905,
                        "name": "saleAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6672,
                        "src": "5759:11:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SaleClockAuction_$6255",
                          "typeString": "contract SaleClockAuction"
                        }
                      },
                      "id": 6907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "withdrawBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5494,
                      "src": "5759:27:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 6908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5759:29:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6909,
                  "nodeType": "ExpressionStatement",
                  "src": "5759:29:22"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6910,
                        "name": "siringAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6674,
                        "src": "5798:13:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SiringClockAuction_$6369",
                          "typeString": "contract SiringClockAuction"
                        }
                      },
                      "id": 6912,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "withdrawBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5494,
                      "src": "5798:29:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 6913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5798:31:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6914,
                  "nodeType": "ExpressionStatement",
                  "src": "5798:31:22"
                }
              ]
            },
            "documentation": "@dev Transfers the balance of the sale auction contract\n to the KittyCore contract. We use two-step withdrawal to\n prevent two transfer calls in the auction bid function.",
            "id": 6916,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 6903,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 6902,
                  "name": "onlyCOO",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6526,
                  "src": "5741:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "5741:7:22"
              }
            ],
            "name": "withdrawAuctionBalances",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6901,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5729:2:22"
            },
            "payable": false,
            "returnParameters": {
              "id": 6904,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5749:0:22"
            },
            "scope": 6917,
            "src": "5697:139:22",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 6918,
        "src": "657:5181:22"
      }
    ],
    "src": "296:5543:22"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-02T14:04:10.982Z"
}