@josojo/forkonomics-contracts
Version:
realitytoken basic contracts
1,041 lines • 907 kB
JSON
{
"contractName": "ForkonomicETTF",
"abi": [
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "address"
}
],
"name": "fundHoldingChange",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"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": "fromAddr",
"type": "address"
},
{
"name": "toAddr",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
},
{
"name": "toBox",
"type": "bytes32"
}
],
"name": "boxTransferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "addrTo",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
}
],
"name": "boxTransferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "allowance",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "box",
"type": "bytes32"
},
{
"name": "branchHash",
"type": "bytes32"
},
{
"name": "earliestPossibleBranch",
"type": "bytes32"
}
],
"name": "recordedBoxWithdrawalAmount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "minTimeout",
"outputs": [
{
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "realityCheck",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "acct",
"type": "bytes32"
},
{
"name": "minBalance",
"type": "uint256"
},
{
"name": "branchHash",
"type": "bytes32"
}
],
"name": "_isAmountSpendable",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
},
{
"name": "toBox",
"type": "bytes32"
}
],
"name": "boxTransfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "fETTFbalanceChange",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "templateId",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_branch",
"type": "bytes32"
}
],
"name": "approve",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "minBond",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "minBalance",
"type": "uint256"
},
{
"name": "branchHash",
"type": "bytes32"
}
],
"name": "isAmountSpendable",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
},
{
"name": "",
"type": "bytes32"
}
],
"name": "allowed",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "box",
"type": "bytes32"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "recordBoxWithdrawal",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "senderBox",
"type": "bytes32"
},
{
"name": "receiverBox",
"type": "bytes32"
}
],
"name": "allowanceBox",
"outputs": [
{
"name": "remaining",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "openingTs",
"outputs": [
{
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "box",
"type": "bytes32"
},
{
"name": "branchHash",
"type": "bytes32"
},
{
"name": "earliestPossibleBranch",
"type": "bytes32"
}
],
"name": "hasBoxWithdrawal",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "minBalance",
"type": "uint256"
},
{
"name": "branchHash",
"type": "bytes32"
},
{
"name": "box",
"type": "bytes32"
}
],
"name": "isAmountSpendableBox",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_amount",
"type": "uint256"
},
{
"name": "_branch",
"type": "bytes32"
},
{
"name": "fromBox",
"type": "bytes32"
},
{
"name": "spenderBox",
"type": "bytes32"
}
],
"name": "approveBox",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "fSystem",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "bytes32"
}
],
"name": "lastDebitWindows",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "addr",
"type": "address"
},
{
"name": "branch",
"type": "bytes32"
},
{
"name": "acct",
"type": "bytes32"
}
],
"name": "balanceOfBox",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "minQuestionFunding",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "realityCheck_",
"type": "address"
},
{
"name": "fSystem_",
"type": "address"
},
{
"name": "funding",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "branch",
"type": "bytes32"
},
{
"indexed": false,
"name": "forkonomicToken",
"type": "address"
},
{
"indexed": false,
"name": "balanceChange_",
"type": "int256"
},
{
"indexed": false,
"name": "compensation",
"type": "int256"
},
{
"indexed": false,
"name": "sender",
"type": "address"
}
],
"name": "NewDealProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_owner",
"type": "address"
},
{
"indexed": false,
"name": "ownerBox",
"type": "bytes32"
},
{
"indexed": true,
"name": "_spender",
"type": "address"
},
{
"indexed": false,
"name": "spenderBox",
"type": "bytes32"
},
{
"indexed": false,
"name": "_value",
"type": "uint256"
},
{
"indexed": false,
"name": "branch",
"type": "bytes32"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": false,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "fromBox",
"type": "bytes32"
},
{
"indexed": false,
"name": "toBox",
"type": "bytes32"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
},
{
"indexed": false,
"name": "branch",
"type": "bytes32"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
},
{
"name": "forkonomicToken",
"type": "address"
},
{
"name": "balanceChange",
"type": "int256"
},
{
"name": "compensation",
"type": "int256"
},
{
"name": "arbitrator",
"type": "address"
},
{
"name": "fromBox",
"type": "bytes32"
}
],
"name": "proposeInvestment",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "questionId",
"type": "bytes32"
},
{
"name": "executionbranch",
"type": "bytes32"
},
{
"name": "originalbranch",
"type": "bytes32"
},
{
"name": "forkonomicToken",
"type": "address"
},
{
"name": "balanceChange_",
"type": "int256"
},
{
"name": "compensation",
"type": "int256"
},
{
"name": "arbitrator",
"type": "address"
},
{
"name": "fromBox",
"type": "bytes32"
}
],
"name": "executeInvestmentRequest",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
},
{
"name": "amount",
"type": "uint256"
},
{
"name": "forkonomicTokens",
"type": "address[]"
}
],
"name": "redeemRealityFundTokens",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "data",
"type": "bytes32"
}
],
"name": "bytes32ToString",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
},
{
"name": "forkonomicToken",
"type": "address"
},
{
"name": "balanceChange",
"type": "int256"
},
{
"name": "compensation",
"type": "int256"
}
],
"name": "calcDealBytes",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080604052600060095564012a05f200600a55600b805463ffffffff19166103e81790556611c37937e08000600c553480156200003b57600080fd5b50604051620034cb380380620034cb83398101604081815282516020808501518386015160058054600160a060020a031916600160a060020a0380851691909117918290557f176b6f0100000000000000000000000000000000000000000000000000000000885295519497929691909201948694869460009485948594859492169263176b6f019260048084019382900301818787803b158015620000e057600080fd5b505af1158015620000f5573d6000803e3d6000fd5b505050506040513d60208110156200010c57600080fd5b505185519094509250600c83106200018557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f20746f6f206d616e792066756e64696e67206163636f756e7473000000000000604482015290519081900360640190fd5b600091505b8282101562000295578482815181101515620001a257fe5b9060200190602002015160006040516020018083600160a060020a0316600160a060020a03166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106200022e5780518252601f1990920191602091820191016200020d565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a8152808352848120828252909252929020805465befe6f672000908101909155600480549091019055506001949094019392506200018a915050565b505060068054600160a060020a03909816600160a060020a0319909816979097179096555050505050506131fc80620002cf6000396000f3006080604052600436106101b35763ffffffff60e060020a60003504166306d1643b81146101b857806306fdde03146101ee57806317d287e01461027857806318160ddd146102bf5780631b6672d2146102d45780631c8d5d38146103045780631db3db1c1461032e5780631f07c4971461038e578063313ce567146103b857806338487803146103e3578063401e33671461040d57806343ae90fe1461043a5780634cf71be4146104625780634d30b6be1461049057806350990880146104b457806357cfeeee146104e55780635d59d45c1461050c57806366422c47146105475780636dd265a514610565578063745e94f6146105925780637aa77f29146105aa5780638180f2fc146105bf578063831518b7146105e6578063911651ac146105fb5780639201de551461062257806395d89b411461063a578063990861831461064f578063a53171a41461066d578063c34719791461068b578063c7049657146106bb578063cf54a3d3146106d0578063d0c91487146106fa578063d1fe531314610724578063d440796e14610751578063e10db51114610766578063f2482e2b1461077e578063f2c2b14e146107a5575b600080fd5b3480156101c457600080fd5b506101dc600435600160a060020a03602435166107ba565b60408051918252519081900360200190f35b3480156101fa57600080fd5b506102036107d7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023d578181015183820152602001610225565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028457600080fd5b506102ab600160a060020a036004358116906024351660443560643560843560a43561080e565b604080519115158252519081900360200190f35b3480156102cb57600080fd5b506101dc610d9f565b3480156102e057600080fd5b506102ab600160a060020a0360043581169060243516604435606435608435610da5565b34801561031057600080fd5b506101dc600160a060020a0360043581169060243516604435610dc0565b34801561033a57600080fd5b50604080516020600460443581810135838102808601850190965280855261038c958335956024803596369695606495939492019291829185019084908082843750949750610dd89650505050505050565b005b34801561039a57600080fd5b506101dc600435600160a060020a0360243516604435606435611187565b3480156103c457600080fd5b506103cd61123e565b6040805160ff9092168252519081900360200190f35b3480156103ef57600080fd5b506101dc600160a060020a0360043516602435604435606435611243565b34801561041957600080fd5b506102ab600160a060020a03600435811690602435166044356064356113a1565b6101dc600435600160a060020a0360243581169060443590606435906084351660a4356113bb565b34801561046e57600080fd5b50610477611846565b6040805163ffffffff9092168252519081900360200190f35b34801561049c57600080fd5b506101dc600160a060020a0360043516602435611852565b3480156104c057600080fd5b506104c9611867565b60408051600160a060020a039092168252519081900360200190f35b3480156104f157600080fd5b506102ab600160a060020a0360043516602435604435611876565b34801561051857600080fd5b5061038c600435602435604435600160a060020a036064358116906084359060a4359060c4351660e435611886565b34801561055357600080fd5b506102ab600435602435604435612217565b34801561057157600080fd5b506102ab600160a060020a0360043516602435604435606435608435612342565b34801561059e57600080fd5b506101dc600435612801565b3480156105b657600080fd5b506101dc612813565b3480156105cb57600080fd5b506102ab600160a060020a0360043516602435604435612819565b3480156105f257600080fd5b506101dc612829565b34801561060757600080fd5b506102ab600160a060020a036004351660243560443561282f565b34801561062e57600080fd5b506102036004356128d0565b34801561064657600080fd5b5061020361298e565b34801561065b57600080fd5b506101dc6004356024356044356129c5565b34801561067957600080fd5b506102ab6004356024356044356129e8565b34801561069757600080fd5b506101dc600160a060020a0360043581169060243516604435606435608435612b42565b3480156106c757600080fd5b50610477612ca8565b3480156106dc57600080fd5b506102ab600160a060020a0360043516602435604435606435612cbc565b34801561070657600080fd5b506102ab600160a060020a0360043516602435604435606435612e23565b34801561073057600080fd5b506102ab600160a060020a0360043516602435604435606435608435612ec3565b34801561075d57600080fd5b506104c961305a565b34801561077257600080fd5b506101dc600435613069565b34801561078a57600080fd5b506101dc600160a060020a036004351660243560443561307b565b3480156107b157600080fd5b506101dc6131b8565b600760209081526000928352604080842090915290825290205481565b60408051808201909152600f81527f466f726b6f6e6f6d696373455454460000000000000000000000000000000000602082015281565b60008060008060008a876040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061088d5780518252601f19909201916020918201910161086e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020935089866040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106109335780518252601f199092019160209182019101610914565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018e90528551808503909101815260549093019485905282519099509195509293508392850191508083835b602083106109b45780518252601f199092019160209182019101610995565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008a81526003835284812082825283528481208f825290925292902054919550508b11159150610a0e905057600080fd5b600554604080517f6ceccf73000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691636ceccf73916024808201926020929091908290030181600087803b158015610a7557600080fd5b505af1158015610a89573d6000803e3d6000fd5b505050506040513d6020811015610a9f57600080fd5b50519050660775f05a074000891115610b02576040805160e560020a62461bcd02815260206004820152601f60248201527f20616d6f756e7420686967686572207468616e20746f74616c537570706c7900604482015290519081900360640190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b158015610b6957600080fd5b505af1158015610b7d573d6000803e3d6000fd5b505050506040513d6020811015610b9357600080fd5b50511515610beb576040805160e560020a62461bcd02815260206004820152601160248201527f6272616e6368206d757374206578697374000000000000000000000000000000604482015290519081900360640190fd5b600084815260026020526040902054811015610c51576040805160e560020a62461bcd02815260206004820152601860248201527f6465626974732063616e7420676f206261636b77617264730000000000000000604482015290519081900360640190fd5b610c5c848a8a612217565b1515610cb2576040805160e560020a62461bcd02815260206004820152601860248201527f616d6f756e74206d757374206265207370656e6461626c650000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083208490558a8352828252808320878452825280832080548d9003905585835280832080548d0190558683526003825280832085845282528083208b8452909152902054610d0f908a6131be565b600085815260036020908152604080832086845282528083208c84528252808320939093558251600160a060020a038e8116825291810183905280840192909252606082018c9052608082018b90529151918d16917f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9181900360a00190a25060019a9950505050505050505050565b60045481565b6000610db68686868686600061080e565b9695505050505050565b6000610dd0848484600080612b42565b949350505050565b600080600080610dea3330888a6113a1565b1515610e66576040805160e560020a62461bcd02815260206004820152603060248201527f7472616e7366657220646964206e6f74207061737320696e2072656465656d5260448201527f65616c69747946756e64546f6b656e7300000000000000000000000000000000606482015290519081900360840190fd5b600093508692505b600560009054906101000a9004600160a060020a0316600160a060020a031663176b6f016040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ec157600080fd5b505af1158015610ed5573d6000803e3d6000fd5b505050506040513d6020811015610eeb57600080fd5b50518314610f8a57600083815260086020908152604080832054600554825160e060020a63f36b43cb0281526004810189905292519890910197600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b158015610f5757600080fd5b505af1158015610f6b573d6000803e3d6000fd5b505050506040513d6020811015610f8157600080fd5b50519250610e6e565b600091505b845182101561117e578482815181101515610fa657fe5b6020908102909101810151604080517f4d30b6be000000000000000000000000000000000000000000000000000000008152306004820152602481018b90529051600160a060020a0390921692634d30b6be926044808401938290030181600087803b15801561101557600080fd5b505af1158015611029573d6000803e3d6000fd5b505050506040513d602081101561103f57600080fd5b5051855190915085908390811061105257fe5b90602001906020020151600160a060020a03166357cfeeee3386848a0281151561107857fe5b6040805160e060020a63ffffffff8716028152600160a060020a0390941660048501529190046024830152604482018b90525160648083019260209291908290030181600087803b1580156110cc57600080fd5b505af11580156110e0573d6000803e3d6000fd5b505050506040513d60208110156110f657600080fd5b50511515611173576040805160e560020a62461bcd028152602060048201526024808201527f7472616e73666572206f662066756e647320776173206e6f742073756363657360448201527f7366756c00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600190910190610f8f565b50505050505050565b604080516020808201879052606060020a600160a060020a0387168102838501526054830186905260748301859052330260948301528251608881840301815260a8909201928390528151600093849392909182918401908083835b602083106112025780518252601f1990920191602091820191016111e3565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090508091505b50949350505050565b601281565b60408051606060020a600160a060020a03871602602080830191909152603480830187905283518084039091018152605490920192839052815160009384938493909282918401908083835b602083106112ae5780518252601f19909201916020918201910161128f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600090505b84158015906112f15750848414155b15611395576000858152600160209081526040808320858452825280832054600554825160e060020a63f36b43cb028152600481018b905292519590910194600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b15801561136257600080fd5b505af1158015611376573d6000803e3d6000fd5b505050506040513d602081101561138c57600080fd5b505194506112e2565b841515610db657600080fd5b60006113b28585858560008061080e565b95945050505050565b600b805467ffffffff0000000019166401000000004262278d000163ffffffff1602179055604080516020808201899052600160a060020a038816606060020a908102838501526054830188905260748301879052330260948301528251808303608801815260a89092019283905281516000938493606093859391929182918401908083835b602083106114615780518252601f199092019160209182019101611442565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250611499836128d0565b60405160200180807f46726f6d20616c6c206f666665727320666f72207468652066455454462c207481526020017f686520666f6c6c6f77696e67206465616c207761732074686520626573743a00815250603f0182805190602001908083835b602083106115195780518252601f1990920191602091820191016114fa565b6001836020036101000a038019825116818451168082178552505050505050905001807f3f000000000000000000000000000000000000000000000000000000000000008152506001019150506040516020818303038152906040529150600660009054906101000a9004600160a060020a0316600160a060020a031663762c38fd65048c27395000600954858a600b60009054906101000a900463ffffffff16600b60049054906101000a900463ffffffff1660006040518863ffffffff1660e060020a028152600401808781526020018060200186600160a060020a0316600160a060020a031681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff168152602001838152602001828103825287818151815260200191508051906020019080838360005b8381101561166657818101518382015260200161164e565b50505050905090810190601f1680156116935780820380516001836020036101000a031916815260200191505b509750505050505050506020604051808303818588803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b50505050506040513d60208110156116e157600080fd5b5051905060008813156117ba57600087126116fb57600080fd5b604080517f17d287e0000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018a9052606481018c90526084810187905260a481018590529051600160a060020a038b16916317d287e09160c48083019260209291908290030181600087803b15801561177e57600080fd5b505af1158015611792573d6000803e3d6000fd5b505050506040513d60208110156117a857600080fd5b505115156117b557600080fd5b6117d5565b600087136117c757600080fd5b6117d33330898d6113a1565b505b600c543410156117e457600080fd5b604080518b8152600160a060020a038b1660208201528082018a90526060810189905233608082015290517fb5314ced9a7db33e50e16bfc3b75ec0c80852fc201d0423cd178d16f0cb5033d9181900360a00190a19998505050505050505050565b600b5463ffffffff1681565b60006118608383600061307b565b9392505050565b600654600160a060020a031681565b6000610dd0848484600080612342565b600554604080517f406edd3600000000000000000000000000000000000000000000000000000000815260048101899052602481018a9052905160009260609284928392600160a060020a03169163406edd3691604480830192602092919082900301818787803b1580156118fa57600080fd5b505af115801561190e573d6000803e3d6000fd5b505050506040513d602081101561192457600080fd5b505115156119a2576040805160e560020a62461bcd02815260206004820152602960248201527f206272616e6368206973206e6f742061206368696c64206f66206f726967696e60448201527f616c206272616e63680000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a038981166004830152602482018f90529151919092169163494691469160448083019260209291908290030181600087803b158015611a1157600080fd5b505af1158015611a25573d6000803e3d6000fd5b505050506040513d6020811015611a3b57600080fd5b50511515611a93576040805160e560020a62461bcd02815260206004820152601e60248201527f61726269747261746f72206973206e6f742077686974652d6c69737465640000604482015290519081900360640190fd5b600560009054906101000a9004600160a060020a0316600160a060020a0316632667404b600660009054906101000a9004600160a060020a0316600160a060020a031663acae8f4e8f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b158015611b1d57600080fd5b505af1158015611b31573d6000803e3d6000fd5b505050506040513d6020811015611b4757600080fd5b50516040805163ffffffff84811660e060020a0282529092166004830152602482018f90525160448083019260209291908290030181600087803b158015611b8e57600080fd5b505af1158015611ba2573d6000803e3d6000fd5b505050506040513d6020811015611bb857600080fd5b50511515611c10576040805160e560020a62461bcd02815260206004820152601d60248201527f77696e646f77202b2074696d6520206973206e6f7420636f7272656374000000604482015290519081900360640190fd5b6040805160208082018d9052606060020a600160a060020a038d16810283850152605483018c9052607483018b9052330260948301528251608881840301815260a890920192839052815191929182918401908083835b60208310611c865780518252601f199092019160209182019101611c67565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350611cbe846128d0565b60405160200180807f46726f6d20616c6c206f666665727320666f72207468652066455454462c207481526020017f686520666f6c6c6f77696e67206465616c207761732074686520626573743a00815250603f0182805190602001908083835b60208310611d3e5780518252601f199092019160209182019101611d1f565b51815160209384036101000a60001901801990921691161790527f3f000000000000000000000000000000000000000000000000000000000000009190930190815260408051808303601e1901815260018301909152600954600b546021840182815264010000000090910463ffffffff1660e060020a810260418601528351939b5091975090955089949093506045909201918401908083835b60208310611df85780518252601f199092019160209182019101611dd9565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310611e5d5780518252601f199092019160209182019101611e3e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600660009054906101000a9004600160a060020a0316600160a060020a03166312a203c38d8489600b60009054906101000a900463ffffffff16600a546040518663ffffffff1660e060020a028152600401808660001916600019168152602001856000191660001916815260200184600160a060020a0316600160a060020a031681526020018363ffffffff1663ffffffff16815260200182815260200195505050505050602060405180830381600087803b158015611f4c57600080fd5b505af1158015611f60573d6000803e3d6000fd5b505050506040513d6020811015611f7657600080fd5b5051905080151561205e57600088131561204357604080517f6dd265a5000000000000000000000000000000000000000000000000000000008152336004820152602481018a9052604481018d905260648101869052608481018790529051600160a060020a038b1691636dd265a59160a48083019260209291908290030181600087803b15801561200757600080fd5b505af115801561201b573d6000803e3d6000fd5b505050506040513d602081101561203157600080fd5b5051151561203e57600080fd5b612059565b61204e33888d611876565b151561205957600080fd5b612209565b600088131561214e576120743360008d8d612cbc565b1561207e57600080fd5b60008b8152602081815260408083208151606060020a33028185015260348082018690528351808303909101815260549091019283905280518c959294929391928291908401908083835b602083106120e85780518252601f1990920191602091820191016120c9565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000908120805490960190955550508d835260089052812080548901905561214890888d6129e8565b50612209565b604080517f57cfeeee000000000000000000000000000000000000000000000000000000008152336004820152602481018a9052604481018d90529051600160a060020a038b16916357cfeeee9160648083019260209291908290030181600087803b1580156121bd57600080fd5b505af11580156121d1573d6000803e3d6000fd5b505050506040513d60208110156121e757600080fd5b505115156121f457600080fd5b60008b81526008602052604090208054880190555b505050505050505050505050565b60008080660775f05a07400085111561227a576040805160e560020a62461bcd02815260206004820152601e60248201527f616d6f756e7420626967676572207468616e20746f74616c537570706c790000604482015290519081900360640190fd5b5060009050835b831561233457600084815260208181526040808320898452825280832054600554825160e060020a63f36b43cb028152600481018a905292519690910195600160a060020a039091169363f36b43cb93602480850194919392918390030190829087803b1580156122f157600080fd5b505af1158015612305573d6000803e3d6000fd5b505050506040513d602081101561231b57600080fd5b5051935080821261232f5760019250612339565b612281565b600092505b50509392505050565b600554604080517f6ceccf7300000000000000000000000000000000000000000000000000000000815260048101869052905160009283928392600160a060020a0390921691636ceccf739160248082019260209290919082900301818787803b1580156123af57600080fd5b505af11580156123c3573d6000803e3d6000fd5b505050506040513d60208110156123d957600080fd5b50519150660775f05a074000871115612462576040805160e560020a62461bcd02815260206004820152602760248201527f2073656e64696e6720616d6f756e7420626967676572207468616e20746f746160448201527f6c537570706c7900000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604080517f4dd8aa05000000000000000000000000000000000000000000000000000000008152600481018990529051600160a060020a0390921691634dd8aa05916024808201926020929091908290030181600087803b1580156124c957600080fd5b505af11580156124dd573d6000803e3d6000fd5b505050506040513d60208110156124f357600080fd5b5051151561254b576040805160e560020a62461bcd02815260206004820152601260248201527f206272616e6368206d7573742065786973740000000000000000000000000000604482015290519081900360640190fd5b60408051606060020a3302602080830191909152603480830189905283518084039091018152605490920192839052815191929182918401908083835b602083106125a75780518252601f199092019160209182019101612588565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008181526002909252929020549194505084101591506126629050576040805160e560020a62461bcd02815260206004820152602a60248201527f206272616e636857696e646f77203e3d206c617374446562697457696e646f7760448201527f735b6163636f756e745d00000000000000000000000000000000000000000000606482015290519081900360840190fd5b61266d818888612217565b15156126c3576040805160e560020a62461bcd02815260206004820152601960248201527f20616d6f756e7420776173206e6f74207370656e6461626c6500000000000000604482015290519081900360640190fd5b600081815260026020908152604080832085905588835282825280832084845280835281842080548c900390558984528383528151606060020a600160a060020a038e16028185015260348082018a90528351808303909101815260549091019283905280518c959294929391928291908401908083835b6020831061275a5780518252601f19909201916020918201910161273b565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600020805495909501909455508051338152918201889052818101879052606082018a90526080820189905251600160a060020a038b1692507f0c6b0e76e483dcdd5bb0b263cc6619434b90af2c8728f59df72be0f801203dbd9160a0908290030190a2506001979650505050505050565b60086020526000908152604090205481565b60095481565b6000610dd0848484600080612ec3565b600a5481565b60408051606060020a600160a060020a03861602602080830191909152600060348084018290528451808503909101815260549093019384905282519093610dd09392909182918401908083835b6020831061289c5780518252601f19909201916020918201910161287d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208484612217565b604080516020808252818301909252606091829160009182919080820161040080388339019050509250600091505b602082101561298557506008810260020a84027fff0000000000000000000000000000000000000000000000000000000000000081161561297a5780838381518110151561294957fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b6001909101906128ff565b50909392505050565b60408051808201909152600581527f4645545446000000000000000000000000000000000000000000000000000000602082015281565b600360209081526000938452604080852082529284528284209052825290205481565b600554604080517f0236b8170000000000000000000000000000000000000000000000000000000081526004810184905290516000928392600160a060020a0390911691630236b8179160248082019260209290919082900301818787803b158015612a5357600080fd5b505af1158015612a67573d6000803e3d6000fd5b505050506040513d6020811015612a7d57600080fd5b505111612a8957600080fd5b60008281526001602090815260408083208151606060020a33028185015260348082018a905283518083039091018152605490910192839052805188959294929391928291908401908083835b60208310612af55780518252601f199092019160209182019101612ad6565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000208054949094019093555060019695505050505050565b60408051606060020a600160a060020a03871602602080830191909152603480830186905283518084039091018152605490920192839052815160009384938493909282918401908083835b60208310612bad5780518252601f199092019160209182019101612b8e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915087846040516020018083600160a060020a0316600160a060020a0316606060020a0281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310612c535780518252601f199092019160209182019101612c34565b51815160209384036101000a600019018019909216911617905260408051929094018290039091206000908152600382528381209781529681528287209a875299909952909320549998505050505050505050565b600b54640100000000900463ffffffff1681565b60408051606060020a600160a060020a038716026020808301919091526034808301879052835180840390910181526054909201928390528151600093849392909182918401908083835b60208310612d265780518252601f199092019160209182019101612d07565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b8315801590612d655750838314155b15612e175760008481526001602090815260408083208484529091528120541315612d935760019150611235565b6005546040805160e060020a63f36b43cb028152600481018790529051600160a060020a039092169163f36b43cb916024808201926020929091908290030181600087803b158015612de457600080fd5b505af1158015612df8573d6000803e3d6000fd5b505050506040513d6020811015612e0e57600080fd5b50519350612d56565b50600095945050505050565b60408051606060020a600160a060020a0387160260208083019190915260348083018590528351808403909101815260549092019283905281516000936113b29392909182918401908083835b60208310612e8f5780518252601f199092019160209182019101612e70565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208585612217565b60408051606060020a600160a060020a03881602602080830191909152603480830185905283518084039091018152605490920192839052815160009384938493909282918401908083835b60208310612f2e5780518252601f199092019160209182019101612f0f565b51815160209384036101000a60001901801990921691161790526040805192909401829003822033606060020a028383015260348084018d90528551808503909101815260549093019485905282519098509195509293508392850191508083835b60208310612faf5780518252601f199092019160209182019101612f90565b51815160001960209485036101000a01908116901991909116179052604080519490920184900384206000818152600383528381208a825283528381208e825283528390208e90558b85529084018a90528382018d9052606084018c90529051909550600160a060020a038d1694503393507f3676da71ebbe2008b6d2bf52b4ab0678cb2166150551071ce4f784087bec6186928190036080019150a3506001979650505050505050565b600554600160a060020a031681565b60026020526000908152604090205481565b6000805b8315610dd0576000848152602081815260408083208151606060020a600160a060020a038b160281850152603480820189905283518083039091018152605490910192839052805191949390929182918401908083835b602083106130f55780518252601f1990920191602091820191016130d6565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812054600554855160e060020a63f36b43cb028152600481018c905295519790910196600160a060020a039091169563f36b43cb95602480820196509194509192918390030190829087803b15801561318557600080fd5b505af1158015613199573d6000803e3d6000fd5b505050506040513d60208110156131af57600080fd5b5051935061307f565b600c5481565b6000828211156131ca57fe5b509003905600a165627a7a723058208e381152ead95436255b14275b9ac5d80a2cc1104590da56669336980aa7f7490029",
"deployedBytecode": "0x6080604052600436106101b35763ffffffff60e060020a60003504166306d1643b81146101b857806306fdde03146101ee57806317d287e01461027857806318160ddd146102bf5780631b6672d2146102d45780631c8d5d38146103045780631db3db1c1461032e5780631f07c4971461038e578063313ce567146103b857806338487803146103e3578063401e33671461040d57806343ae90fe1461043a5780634cf71be4146104625780634d30b6be1461049057806350990880146104b457806357cfeeee146104e55780635d59d45c1461050c57806366422c47146105475780636dd265a514610565578063745e94f6146105925780637aa77f29146105aa5780638180f2fc146105bf578063831518b7146105e6578063911651ac146105fb5780639201de551461062257806395d89b411461063a578063990861831461064f578063a53171a41461066d578063c34719791461068b578063c7049657146106bb578063cf54a3d3146106d0578063d0c91487146106fa578063d1fe531314610724578063d440796e14610751578063e10db51114610766578063f2482e2b1461077e578063f2c2b14e146107a5575b600080fd5b3480156101c457600080fd5b506101dc600435600160a060020a03602435166107ba565b60408051918252519081900360200190f35b3480156101fa57600080fd5b506102036107d7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023d578181015183820152602001610225565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028457600080fd5b506102ab600160a060020a036004358116906024351660443560643560843560a43561080e565b604080519115158252519081900360200190f35b3480156102cb57600080fd5b506101dc610d9f565b3480156102e057600080fd5b506102ab600160a060020a0360043581169060243516604435606435608435610da5565b34801561031057600080fd5b506101dc600160a060020a0360043581169060243516604435610dc0565b34801561033a57600080fd5b50604080516020600460443581810135838102808601850190965280855261038c958335956024803596369695606495939492019291829185019084908082843750949750610dd89650505050505050565b005b34801561039a57600080fd5b506101dc600435600160a060020a0360243516604435606435611187565b3480156103c457600080fd5b506103cd61123e565b6040805160ff9092168252519081900360200190f35b3480156103ef57600080fd5b506101dc600160a060020a0360043516602435604435606435611243565b34801561041957600080fd5b506102ab600160a060020a03600435811690602435166044356064356113a1565b6101dc600435600160a060020a0360243581169060443590606435906084351660a4356113bb565b34801561046e57600080fd5b50610477611846565b6040805163ffffffff9092168252519081900360200190f35b34801561049c57600080fd5b506101dc600160a060020a0360043516602435611852565b3480156104c057600080fd5b506104c9611867565b60408051600160a060020a039092168252519081900360200190f35b3480156104f157600080fd5b506102ab600160a060020a0360043516602435604435611876565b34801561051857600080fd5b5061038c600435602435604435600160a060020a036064358116906084359060a4359060c4351660e435611886565b34801561055357600080fd5b506102ab600435602435604435612217565b34801561057157600080fd5b506102ab600160a060020a0360043516602435604435606435608435612342565b34801561059e57600080fd5b506101dc600435612801565b3480156105b657600080fd5b506101dc612813565b3480156105cb57600080fd5b506102ab600160a060020a03600435166