kleros-interaction-2
Version:
Smart contracts interacting with Kleros.
949 lines • 258 kB
JSON
{
"contractName": "KittyMinting",
"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": "promoCreatedCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"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": false,
"inputs": [
{
"name": "_address",
"type": "address"
}
],
"name": "setSiringAuctionAddress",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"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": "_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": "unpause",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "gen0CreationLimit",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"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": "_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": "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": "_address",
"type": "address"
}
],
"name": "setSaleAuctionAddress",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"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": false,
"inputs": [],
"name": "withdrawAuctionBalances",
"outputs": [],
"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": "gen0StartingPrice",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"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": "promoCreationLimit",
"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": "gen0AuctionDuration",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_sireId",
"type": "uint256"
},
{
"name": "_matronId",
"type": "uint256"
}
],
"name": "bidOnSiringAuction",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "gen0CreatedCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"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": "_genes",
"type": "uint256"
},
{
"name": "_owner",
"type": "address"
}
],
"name": "createPromoKitty",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_genes",
"type": "uint256"
}
],
"name": "createGen0Auction",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6002805460a060020a60ff0219169055610240604052603c6080908152607860a05261012c60c05261025860e05261070861010052610e1061012052611c2061014052613840610160526170806101805261e1006101a052620151806101c0526202a3006101e052620546006102005262093a80610220526200008790600390600e62000153565b5060408051808201909152600d8082527f43727970746f4b697474696573000000000000000000000000000000000000006020909201918252620000ce91600a91620001f6565b506040805180820190915260028082527f434b00000000000000000000000000000000000000000000000000000000000060209092019182526200011591600b91620001f6565b5066038d7ea4c68000600c5561138860105561c350601155662386f26fc10000601255620151806013553480156200014c57600080fd5b50620002bb565b600283019183908215620001e45791602002820160005b83821115620001b057835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026200016a565b8015620001e25782816101000a81549063ffffffff0219169055600401602081600301049283019260010302620001b0565b505b50620001f292915062000277565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023957805160ff191683800117855562000269565b8280016001018555821562000269579182015b82811115620002695782518255916020019190600101906200024c565b50620001f29291506200029e565b6200029b91905b80821115620001f257805463ffffffff191681556001016200027e565b90565b6200029b91905b80821115620001f25760008155600101620002a5565b61274080620002cb6000396000f30060806040526004361061024d5763ffffffff60e060020a600035041663030c474181146102525780630519ce791461027857806305e45546146102a957806306fdde03146102d0578063095ea7b31461035a5780630a0f81681461037e5780631051db341461039357806314001f4c146103bc57806318160ddd146103dd57806321717ebf146103f257806323b872dd1461040757806324e7a38a1461043157806327d7874c146104525780632ba73c15146104735780633d7d3f5a146104945780633f4ba83a146104b5578063404d0e3e146104ca57806346116e6f146104df57806346d22c70146104f75780634707f44f14610512578063481af3d3146105365780634ad8c9381461054e5780634b85fd551461056f5780634dfff04f146105875780634e0a3379146105ab57806356129134146105cc5780635c975abb146105f05780635fd8c710146106055780636352211e1461061a5780636fbde40d146106325780637004fb841461065357806370a082311461066e5780638456cb591461068f57806388c2a0bf146106a457806391876e57146106bc57806395d89b41146106d15780639d6fac6f146106e6578063a45f4bfc14610717578063a9059cbb1461072f578063ae4d0ff714610753578063b047fb5014610768578063b0c35c051461077d578063b531933514610792578063c3bea9af146107a7578063d3e6f49f146107bf578063e6cbe351146107d7578063eb845c17146107ec578063ed60ade614610801578063f1ca94101461080f578063f2b47d5214610824578063f7d8c88314610839575b600080fd5b34801561025e57600080fd5b50610276600435600160a060020a0360243516610847565b005b34801561028457600080fd5b5061028d610899565b60408051600160a060020a039092168252519081900360200190f35b3480156102b557600080fd5b506102be6108a8565b60408051918252519081900360200190f35b3480156102dc57600080fd5b506102e56108ae565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031f578181015183820152602001610307565b50505050905090810190601f16801561034c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036657600080fd5b50610276600160a060020a036004351660243561093c565b34801561038a57600080fd5b5061028d6109ae565b34801561039f57600080fd5b506103a86109bd565b604080519115158252519081900360200190f35b3480156103c857600080fd5b50610276600160a060020a03600435166109c2565b3480156103e957600080fd5b506102be610a75565b3480156103fe57600080fd5b5061028d610a7f565b34801561041357600080fd5b50610276600160a060020a0360043581169060243516604435610a8e565b34801561043d57600080fd5b50610276600160a060020a0360043516610adf565b34801561045e57600080fd5b50610276600160a060020a0360043516610b92565b34801561047f57600080fd5b50610276600160a060020a0360043516610be0565b3480156104a057600080fd5b50610276600435602435604435606435610c2e565b3480156104c157600080fd5b50610276610d10565b3480156104d657600080fd5b506102be610d5f565b3480156104eb57600080fd5b5061028d600435610d65565b34801561050357600080fd5b506103a8600435602435610d80565b34801561051e57600080fd5b506102be600160a060020a0360043516602435610e02565b34801561054257600080fd5b5061028d600435610e57565b34801561055a57600080fd5b50610276600435602435604435606435610e72565b34801561057b57600080fd5b50610276600435610f4a565b34801561059357600080fd5b50610276600160a060020a0360043516602435610f66565b3480156105b757600080fd5b50610276600160a060020a0360043516610fc0565b3480156105d857600080fd5b50610276600435600160a060020a036024351661100e565b3480156105fc57600080fd5b506103a8611091565b34801561061157600080fd5b506102766110a1565b34801561062657600080fd5b5061028d6004356110f5565b34801561063e57600080fd5b50610276600160a060020a036004351661111e565b34801561065f57600080fd5b506102766004356024356111d1565b34801561067a57600080fd5b506102be600160a060020a03600435166113c0565b34801561069b57600080fd5b506102766113db565b3480156106b057600080fd5b506102be60043561145b565b3480156106c857600080fd5b506102766116e7565b3480156106dd57600080fd5b506102e56117d0565b3480156106f257600080fd5b506106fe60043561182b565b6040805163ffffffff9092168252519081900360200190f35b34801561072357600080fd5b5061028d600435611858565b34801561073b57600080fd5b50610276600160a060020a0360043516602435611873565b34801561075f57600080fd5b506102be6118bf565b34801561077457600080fd5b5061028d6118c5565b34801561078957600080fd5b506102be6118d4565b34801561079e57600080fd5b506102be6118da565b3480156107b357600080fd5b506102766004356118e0565b3480156107cb57600080fd5b506103a86004356119cc565b3480156107e357600080fd5b5061028d611a9b565b3480156107f857600080fd5b506102be611aaa565b610276600435602435611ab0565b34801561081b57600080fd5b506102be611ce6565b34801561083057600080fd5b5061028d611cec565b610276600435602435611cfb565b600254600160a060020a0316331461085e57600080fd5b60025460a060020a900460ff161561087557600080fd5b61087f3083611db2565b151561088a57600080fd5b610895308284611dd2565b5050565b600154600160a060020a031681565b60145481565b600a805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109345780601f1061090957610100808354040283529160200191610934565b820191906000526020600020905b81548152906001019060200180831161091757829003601f168201915b505050505081565b60025460a060020a900460ff161561095357600080fd5b61095d3382611db2565b151561096857600080fd5b6109728183611eab565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b60008054600160a060020a031633146109da57600080fd5b81905080600160a060020a03166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a1b57600080fd5b505af1158015610a2f573d6000803e3d6000fd5b505050506040513d6020811015610a4557600080fd5b50511515610a5257600080fd5b600f8054600160a060020a031916600160a060020a039290921691909117905550565b6005546000190190565b600f54600160a060020a031681565b60025460a060020a900460ff1615610aa557600080fd5b610aaf3382611ed9565b1515610aba57600080fd5b610ac48382611db2565b1515610acf57600080fd5b610ada838383611dd2565b505050565b60008054600160a060020a03163314610af757600080fd5b81905080600160a060020a03166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b3857600080fd5b505af1158015610b4c573d6000803e3d6000fd5b505050506040513d6020811015610b6257600080fd5b50511515610b6f57600080fd5b600d8054600160a060020a031916600160a060020a039290921691909117905550565b600054600160a060020a03163314610ba957600080fd5b600160a060020a0381161515610bbe57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610bf757600080fd5b600160a060020a0381161515610c0c57600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1615610c4557600080fd5b610c4f3385611db2565b1515610c5a57600080fd5b600e54610c71908590600160a060020a0316611eab565b600e54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b5050505050505050565b600054600160a060020a03163314610d2757600080fd5b60025460a060020a900460ff161515610d3f57600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b60115481565b600960205260009081526040902054600160a060020a031681565b60008080808511610d9057600080fd5b60008411610d9d57600080fd5b6005805486908110610dab57fe5b90600052602060002090600202019150600584815481101515610dca57fe5b90600052602060002090600202019050610de682868387611ef9565b8015610df75750610df78486612079565b92505b505092915050565b60008060015b610e10610a75565b811161024d57600081815260066020526040902054600160a060020a0386811691161415610e4f5783821415610e4857809250610dfa565b6001909101905b600101610e08565b600860205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610e8957600080fd5b610e933385611db2565b1515610e9e57600080fd5b610ea7846119cc565b1515610eb257600080fd5b600f54610ec9908590600160a060020a0316611eab565b600f54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610cf257600080fd5b600254600160a060020a03163314610f6157600080fd5b600c55565b60025460a060020a900460ff1615610f7d57600080fd5b610f873382611db2565b1515610f9257600080fd5b60009081526009602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610fd757600080fd5b600160a060020a0381161515610fec57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b600254600090600160a060020a0316331461102857600080fd5b5080600160a060020a03811615156110485750600254600160a060020a03165b6010546014541061105857600080fd5b6011546015541061106857600080fd5b60148054600190810190915560158054909101905561108b6000808086856120ce565b50505050565b60025460a060020a900460ff1681565b600154600160a060020a031633146110b857600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156110f2573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a031680151561111957600080fd5b919050565b60008054600160a060020a0316331461113657600080fd5b81905080600160a060020a03166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561117757600080fd5b505af115801561118b573d6000803e3d6000fd5b505050506040513d60208110156111a157600080fd5b505115156111ae57600080fd5b600e8054600160a060020a031916600160a060020a039290921691909117905550565b600254600090819060a060020a900460ff16156111ed57600080fd5b6111f73385611db2565b151561120257600080fd5b61120c8385612079565b151561121757600080fd5b600580548590811061122557fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e08201529092506112d09061237f565b15156112db57600080fd5b60058054849081106112e957fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e08201529091506113949061237f565b151561139f57600080fd5b6113ab82858386611ef9565b15156113b657600080fd5b61108b84846123af565b600160a060020a031660009081526007602052604090205490565b600254600160a060020a03163314806113fe5750600054600160a060020a031633145b806114135750600154600160a060020a031633145b151561141e57600080fd5b60025460a060020a900460ff161561143557600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b600080600080600080600080600260149054906101000a900460ff1615151561148357600080fd5b600580548a90811061149157fe5b60009182526020909120600290910201600181015490975067ffffffffffffffff1615156114be57600080fd5b604080516101008101825288548152600189015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925263ffffffff608060020a83048116606083015260a060020a83048116608083015260c060020a83041660a082015261ffff60e060020a8304811660c083015260f060020a90920490911660e082015261154f906124c2565b151561155a57600080fd5b60018701546005805460c060020a90920463ffffffff169750908790811061157e57fe5b600091825260209091206001808a015460029093029091019081015490965061ffff60f060020a9283900481169650919004168410156115cb57600185015460f060020a900461ffff1693505b600d5487548654604080517f8d8b1b880000000000000000000000000000000000000000000000000000000081526004810193909352602483019190915251600160a060020a0390921691638d8b1b88916044808201926020929091908290030181600087803b15801561163e57600080fd5b505af1158015611652573d6000803e3d6000fd5b505050506040513d602081101561166857600080fd5b505160008a815260066020526040902054600189810154929550600160a060020a0390911693506116b1918b9160c060020a90910463ffffffff1690870161ffff1686866120ce565b60019790970180547bffffffff000000000000000000000000000000000000000000000000191690555094979650505050505050565b600254600160a060020a031633146116fe57600080fd5b600e60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561175157600080fd5b505af1158015611765573d6000803e3d6000fd5b50505050600f60009054906101000a9004600160a060020a0316600160a060020a0316635fd8c7106040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156117bc57600080fd5b505af115801561108b573d6000803e3d6000fd5b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109345780601f1061090957610100808354040283529160200191610934565b600381600e811061183857fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b60025460a060020a900460ff161561188a57600080fd5b600160a060020a038216151561189f57600080fd5b6118a93382611db2565b15156118b457600080fd5b610895338383611dd2565b60125481565b600254600160a060020a031681565b600c5481565b60105481565b600254600090600160a060020a031633146118fa57600080fd5b6011546015541061190a57600080fd5b611919600080600085306120ce565b600e54909150611933908290600160a060020a0316611eab565b600e54600160a060020a03166327ebe40a8261194d6124f1565b6013546040805160e060020a63ffffffff8716028152600481019490945260248401929092526000604484018190526064840191909152306084840152905160a48084019382900301818387803b1580156119a757600080fd5b505af11580156119bb573d6000803e3d6000fd5b505060158054600101905550505050565b6000808083116119db57600080fd5b60058054849081106119e957fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e0820152909150611a949061237f565b9392505050565b600e54600160a060020a031681565b60135481565b60025460009081908190819060a060020a900460ff1615611ad057600080fd5b611ada3386611db2565b1515611ae557600080fd5b611aee856119cc565b1515611af957600080fd5b611b0385876125af565b1515611b0e57600080fd5b600f54604080517fc55d0f56000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163c55d0f56916024808201926020929091908290030181600087803b158015611b7557600080fd5b505af1158015611b89573d6000803e3d6000fd5b505050506040513d6020811015611b9f57600080fd5b5051600c549094503493506000925084018310611bc257600c5483039250600191505b600f54604080517f454a2ab3000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a039092169163454a2ab3918691602480830192600092919082900301818588803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b5050505050611c588563ffffffff168763ffffffff166123af565b8115611cde576005805486908110611c6c57fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c858260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a15b505050505050565b60155481565b600d54600160a060020a031681565b60025460009060a060020a900460ff1615611d1557600080fd5b600c54341015611d2457600080fd5b611d2e83836111d1565b6005805484908110611d3c57fe5b906000526020600020906002020190507f1c2771fbe007c332593b3adcacf033ce4a97f9cb1f6dd81e40d9a42c66d2e65c838260010160089054906101000a900467ffffffffffffffff16604051808381526020018267ffffffffffffffff1681526020019250505060405180910390a1505050565b600090815260066020526040902054600160a060020a0391821691161490565b600160a060020a03808316600081815260076020908152604080832080546001019055858352600690915290208054600160a060020a0319169091179055831615611e6557600160a060020a03831660009081526007602090815260408083208054600019019055838352600982528083208054600160a060020a03199081169091556008909252909120805490911690555b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000918252600860205260409091208054600160a060020a031916600160a060020a03909216919091179055565b600090815260086020526040902054600160a060020a0391821691161490565b600081841415611f0b57506000612071565b6001850154608060020a900463ffffffff16821480611f3a5750600185015460a060020a900463ffffffff1682145b15611f4757506000612071565b6001830154608060020a900463ffffffff16841480611f765750600183015460a060020a900463ffffffff1684145b15611f8357506000612071565b6001830154608060020a900463ffffffff161580611fb057506001850154608060020a900463ffffffff16155b15611fbd57506001612071565b60018581015490840154608060020a9182900463ffffffff90811692909104161480612008575060018086015490840154608060020a900463ffffffff90811660a060020a90920416145b1561201557506000612071565b6001808601549084015460a060020a900463ffffffff908116608060020a90920416148061206057506001858101549084015460a060020a9182900463ffffffff9081169290910416145b1561206d57506000612071565b5060015b949350505050565b6000818152600660205260408082205484835290822054600160a060020a03918216911680821480610df75750600085815260096020526040902054600160a060020a03908116908316149250505092915050565b60006120d86126d0565b600063ffffffff8811156120eb57600080fd5b63ffffffff8711156120fc57600080fd5b61ffff86111561210b57600080fd5b505060408051610100810182528481524267ffffffffffffffff90811660208301908152600093830184815263ffffffff8b8116606086019081528b82166080870190815260a0870188815260c0880189815261ffff8e811660e08b01908152600580546001810182559c528a517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db060028e029081019190915598517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1909901805498519651955194519351915167ffffffffffffffff19909916998b16999099176fffffffffffffffff000000000000000019166801000000000000000096909a16959095029890981773ffffffff000000000000000000000000000000001916608060020a938616939093029290921777ffffffff0000000000000000000000000000000000000000191660a060020a91851691909102177bffffffff000000000000000000000000000000000000000000000000191660c060020a91841691909102177fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e060020a91861691909102177dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f060020a929094169190910292909217905590919081111561230257600080fd5b60608281015160808085015185516040805187815263ffffffff95861660208201529490921684830152938301939093529151600160a060020a038716927f0a5311bd2a6608f08a180df2ee7c5946819a649b204b554bb8e39825b2c50ad5928290030190a261237460008583611dd2565b979650505050505050565b60008160a0015163ffffffff1660001480156123a9575042826040015167ffffffffffffffff1611155b92915050565b6000806005838154811015156123c157fe5b906000526020600020906002020191506005848154811015156123e057fe5b600091825260209091206002909102016001810180547bffffffff000000000000000000000000000000000000000000000000191660c060020a63ffffffff8716021790559050612430826125fe565b612439816125fe565b60008481526009602090815260408083208054600160a060020a0319908116909155868452818420805490911690558683526006825291829020548251600160a060020a0391909116815290810186905280820185905290517f6b4808987a5cecdf67d54ca5dc20664fafca80ef7195097800c12549245ab20d9181900360600190a150505050565b60008160a0015163ffffffff166000141580156123a9575050604001514267ffffffffffffffff909116111590565b6000806000600e60009054906101000a9004600160a060020a0316600160a060020a031663eac9d94c6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561254957600080fd5b505af115801561255d573d6000803e3d6000fd5b505050506040513d602081101561257357600080fd5b505191506fffffffffffffffffffffffffffffffff821061259357600080fd5b60028204820190506012548110156123a9575060125492915050565b60008060006005858154811015156125c357fe5b906000526020600020906002020191506005848154811015156125e257fe5b90600052602060002090600202019050610df782868387611ef9565b600181015460039060e060020a900461ffff16600e811061261b57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1642018160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600d81600101601c9054906101000a900461ffff1661ffff1610156110f2576001818101805461ffff60e060020a8083048216909401169092027fffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff90921691909117905550565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152905600a165627a7a72305820861cc2ef0feb3ded00fe5b4d0b50798cee3b27d171461dd14af364e492bb23f40029",
"deployedBytecode": "0x60806040526004361061024d5763ffffffff60e060020a600035041663030c474181146102525780630519ce791461027857806305e45546146102a957806306fdde03146102d0578063095ea7b31461035a5780630a0f81681461037e5780631051db341461039357806314001f4c146103bc57806318160ddd146103dd57806321717ebf146103f257806323b872dd1461040757806324e7a38a1461043157806327d7874c146104525780632ba73c15146104735780633d7d3f5a146104945780633f4ba83a146104b5578063404d0e3e146104ca57806346116e6f146104df57806346d22c70146104f75780634707f44f14610512578063481af3d3146105365780634ad8c9381461054e5780634b85fd551461056f5780634dfff04f146105875780634e0a3379146105ab57806356129134146105cc5780635c975abb146105f05780635fd8c710146106055780636352211e1461061a5780636fbde40d146106325780637004fb841461065357806370a082311461066e5780638456cb591461068f57806388c2a0bf146106a457806391876e57146106bc57806395d89b41146106d15780639d6fac6f146106e6578063a45f4bfc14610717578063a9059cbb1461072f578063ae4d0ff714610753578063b047fb5014610768578063b0c35c051461077d578063b531933514610792578063c3bea9af146107a7578063d3e6f49f146107bf578063e6cbe351146107d7578063eb845c17146107ec578063ed60ade614610801578063f1ca94101461080f578063f2b47d5214610824578063f7d8c88314610839575b600080fd5b34801561025e57600080fd5b50610276600435600160a060020a0360243516610847565b005b34801561028457600080fd5b5061028d610899565b60408051600160a060020a039092168252519081900360200190f35b3480156102b557600080fd5b506102be6108a8565b60408051918252519081900360200190f35b3480156102dc57600080fd5b506102e56108ae565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561031f578181015183820152602001610307565b50505050905090810190601f16801561034c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036657600080fd5b50610276600160a060020a036004351660243561093c565b34801561038a57600080fd5b5061028d6109ae565b34801561039f57600080fd5b506103a86109bd565b604080519115158252519081900360200190f35b3480156103c857600080fd5b50610276600160a060020a03600435166109c2565b3480156103e957600080fd5b506102be610a75565b3480156103fe57600080fd5b5061028d610a7f565b34801561041357600080fd5b50610276600160a060020a0360043581169060243516604435610a8e565b34801561043d57600080fd5b50610276600160a060020a0360043516610adf565b34801561045e57600080fd5b50610276600160a060020a0360043516610b92565b34801561047f57600080fd5b50610276600160a060020a0360043516610be0565b3480156104a057600080fd5b50610276600435602435604435606435610c2e565b3480156104c157600080fd5b50610276610d10565b3480156104d657600080fd5b506102be610d5f565b3480156104eb57600080fd5b5061028d600435610d65565b34801561050357600080fd5b506103a8600435602435610d80565b34801561051e57600080fd5b506102be600160a060020a0360043516602435610e02565b34801561054257600080fd5b5061028d600435610e57565b34801561055a57600080fd5b50610276600435602435604435606435610e72565b34801561057b57600080fd5b50610276600435610f4a565b34801561059357600080fd5b50610276600160a060020a0360043516602435610f66565b3480156105b757600080fd5b50610276600160a060020a0360043516610fc0565b3480156105d857600080fd5b50610276600435600160a060020a036024351661100e565b3480156105fc57600080fd5b506103a8611091565b34801561061157600080fd5b506102766110a1565b34801561062657600080fd5b5061028d6004356110f5565b34801561063e57600080fd5b50610276600160a060020a036004351661111e565b34801561065f57600080fd5b506102766004356024356111d1565b34801561067a57600080fd5b506102be600160a060020a03600435166113c0565b34801561069b57600080fd5b506102766113db565b3480156106b057600080fd5b506102be60043561145b565b3480156106c857600080fd5b506102766116e7565b3480156106dd57600080fd5b506102e56117d0565b3480156106f257600080fd5b506106fe60043561182b565b6040805163ffffffff9092168252519081900360200190f35b34801561072357600080fd5b5061028d600435611858565b34801561073b57600080fd5b50610276600160a060020a0360043516602435611873565b34801561075f57600080fd5b506102be6118bf565b34801561077457600080fd5b5061028d6118c5565b34801561078957600080fd5b506102be6118d4565b34801561079e57600080fd5b506102be6118da565b3480156107b357600080fd5b506102766004356118e0565b3480156107cb57600080fd5b506103a86004356119cc565b3480156107e357600080fd5b5061028d611a9b565b3480156107f857600080fd5b506102be611aaa565b610276600435602435611ab0565b34801561081b57600080fd5b506102be611ce6565b34801561083057600080fd5b5061028d611cec565b610276600435602435611cfb565b600254600160a060020a0316331461085e57600080fd5b60025460a060020a900460ff161561087557600080fd5b61087f3083611db2565b151561088a57600080fd5b610895308284611dd2565b5050565b600154600160a060020a031681565b60145481565b600a805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109345780601f1061090957610100808354040283529160200191610934565b820191906000526020600020905b81548152906001019060200180831161091757829003601f168201915b505050505081565b60025460a060020a900460ff161561095357600080fd5b61095d3382611db2565b151561096857600080fd5b6109728183611eab565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b60008054600160a060020a031633146109da57600080fd5b81905080600160a060020a03166376190f8f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a1b57600080fd5b505af1158015610a2f573d6000803e3d6000fd5b505050506040513d6020811015610a4557600080fd5b50511515610a5257600080fd5b600f8054600160a060020a031916600160a060020a039290921691909117905550565b6005546000190190565b600f54600160a060020a031681565b60025460a060020a900460ff1615610aa557600080fd5b610aaf3382611ed9565b1515610aba57600080fd5b610ac48382611db2565b1515610acf57600080fd5b610ada838383611dd2565b505050565b60008054600160a060020a03163314610af757600080fd5b81905080600160a060020a03166354c15b826040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b3857600080fd5b505af1158015610b4c573d6000803e3d6000fd5b505050506040513d6020811015610b6257600080fd5b50511515610b6f57600080fd5b600d8054600160a060020a031916600160a060020a039290921691909117905550565b600054600160a060020a03163314610ba957600080fd5b600160a060020a0381161515610bbe57600080fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610bf757600080fd5b600160a060020a0381161515610c0c57600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60025460a060020a900460ff1615610c4557600080fd5b610c4f3385611db2565b1515610c5a57600080fd5b600e54610c71908590600160a060020a0316611eab565b600e54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b5050505050505050565b600054600160a060020a03163314610d2757600080fd5b60025460a060020a900460ff161515610d3f57600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b60115481565b600960205260009081526040902054600160a060020a031681565b60008080808511610d9057600080fd5b60008411610d9d57600080fd5b6005805486908110610dab57fe5b90600052602060002090600202019150600584815481101515610dca57fe5b90600052602060002090600202019050610de682868387611ef9565b8015610df75750610df78486612079565b92505b505092915050565b60008060015b610e10610a75565b811161024d57600081815260066020526040902054600160a060020a0386811691161415610e4f5783821415610e4857809250610dfa565b6001909101905b600101610e08565b600860205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610e8957600080fd5b610e933385611db2565b1515610e9e57600080fd5b610ea7846119cc565b1515610eb257600080fd5b600f54610ec9908590600160a060020a0316611eab565b600f54604080517f27ebe40a000000000000000000000000000000000000000000000000000000008152600481018790526024810186905260448101859052606481018490523360848201529051600160a060020a03909216916327ebe40a9160a48082019260009290919082900301818387803b158015610cf257600080fd5b600254600160a060020a03163314610f6157600080fd5b600c55565b60025460a060020a900460ff1615610f7d57600080fd5b610f873382611db2565b1515610f9257600080fd5b60009081526009602052604090208054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a03163314610fd757600080fd5b600160a060020a0381161515610fec57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b600254600090600160a060020a0316331461102857600080fd5b5080600160a060020a03811615156110485750600254600160a060020a03165b6010546014541061105857600080fd5b6011546015541061106857600080fd5b60148054600190810190915560158054909101905561108b6000808086856120ce565b50505050565b60025460a060020a900460ff1681565b600154600160a060020a031633146110b857600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156110f2573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a031680151561111957600080fd5b919050565b60008054600160a060020a0316331461113657600080fd5b81905080600160a060020a03166385b861886040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561117757600080fd5b505af115801561118b573d6000803e3d6000fd5b505050506040513d60208110156111a157600080fd5b505115156111ae57600080fd5b600e8054600160a060020a031916600160a060020a039290921691909117905550565b600254600090819060a060020a900460ff16156111ed57600080fd5b6111f73385611db2565b151561120257600080fd5b61120c8385612079565b151561121757600080fd5b600580548590811061122557fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e08201529092506112d09061237f565b15156112db57600080fd5b60058054849081106112e957fe5b60009182526020918290206040805161010081018252600290930290910180548352600181015467ffffffffffffffff808216958501959095526801000000000000000081049094169183019190915263ffffffff608060020a84048116606084015260a060020a84048116608084015260c060020a84041660a083015261ffff60e060020a8404811660c084015260f060020a90930490921660e