dgf-prototype/backend/contractArtifacts/Rollup.json

267 lines
41 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "Rollup",
"sourceName": "contracts/Rollup.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract DAO",
"name": "dao",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "stakeIndex",
"type": "uint256"
}
],
"name": "AvailabilityStaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"indexed": false,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "fee",
"type": "uint256"
}
],
"name": "BatchItemAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "batchWorker",
"type": "address"
}
],
"name": "BatchWorkerAssigned",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "worker",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "acceptAvailability",
"outputs": [
{
"internalType": "uint256",
"name": "refund",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "author",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeAmount",
"type": "uint256"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
}
],
"name": "addItem",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "batchWorker",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "itemCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "items",
"outputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "worker",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stakeCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakes",
"outputs": [
{
"internalType": "address",
"name": "worker",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTime",
"type": "uint256"
},
{
"internalType": "bool",
"name": "assigned",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "batchPostId",
"type": "string"
},
{
"internalType": "string[]",
"name": "batchItems",
"type": "string[]"
},
{
"internalType": "uint256",
"name": "poolDuration",
"type": "uint256"
}
],
"name": "submitBatch",
"outputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a06040523480156200001157600080fd5b5060405162002407380380620024078339818101604052810190620000379190620000f4565b80808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050505062000126565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a8826200007b565b9050919050565b6000620000bc826200009b565b9050919050565b620000ce81620000af565b8114620000da57600080fd5b50565b600081519050620000ee81620000c3565b92915050565b6000602082840312156200010d576200010c62000076565b5b60006200011d84828501620000dd565b91505092915050565b6080516122b0620001576000396000818161021c015281816107c0015281816108aa01526109ec01526122b06000f3fe60806040526004361061007b5760003560e01c8063bfb231d21161004e578063bfb231d214610150578063c4a9e11614610191578063d5a44f86146101bc578063f85c5a8a146101fc5761007b565b8063216ed6ad1461008057806324364a6b146100bd5780632c6a2e83146100e85780636bfb0d0114610125575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a2919061122a565b610218565b6040516100b4919061128c565b60405180910390f35b3480156100c957600080fd5b506100d2610561565b6040516100df91906112b6565b60405180910390f35b3480156100f457600080fd5b5061010f600480360381019061010a919061138c565b610587565b60405161011c919061128c565b60405180910390f35b34801561013157600080fd5b5061013a610d28565b604051610147919061128c565b60405180910390f35b34801561015c57600080fd5b5061017760048036038101906101729190611421565b610d2e565b6040516101889594939291906114de565b60405180910390f35b34801561019d57600080fd5b506101a6610e2c565b6040516101b3919061128c565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190611421565b610e32565b6040516101f39493929190611553565b60405180910390f35b61021660048036038101906102119190611598565b610e8f565b005b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029f9061167e565b60405180910390fd5b600083116102eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e2906116ea565b60405180910390fd5b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811480156103a057508473ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561040757600260008154809291906103b890611739565b91905055905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506104ab565b60008082815260200190815260200160002060030160009054906101000a900460ff1615610491576002600081548092919061044290611739565b91905055905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506104aa565b6000808281526020019081526020016000206001015491505b5b60008060008381526020019081526020016000209050858160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084816001018190555083426105199190611781565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e982604051610550919061128c565b60405180910390a150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066f57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461066e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066590611827565b60405180910390fd5b5b6004548484905011156106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae90611893565b60405180910390fd5b60005b8484905081101561077857600360008281526020019081526020016000206004016040516106e891906119b6565b6040518091039020858583818110610703576107026119cd565b5b90506020028101906107159190611a0b565b604051610723929190611aa2565b60405180910390201461076b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076290611b07565b60405180910390fd5b80806001019150506106ba565b50600080600090505b858590508110156107bd576003600082815260200190815260200160002060030154826107ae9190611781565b91508080600101915050610781565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7382898987604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518a63ffffffff1660e01b8152600401610855989796959493929190611c7b565b60206040518083038185885af1158015610873573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108989190611d1e565b915060005b85859050811015610993577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3846003600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360008681526020019081526020016000206002015460016040518563ffffffff1660e01b81526004016109549493929190611d4b565b600060405180830381600087803b15801561096e57600080fd5b505af1158015610982573d6000803e3d6000fd5b50505050808060010191505061089d565b50600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008060065481526020019081526020016000206001015460016040518563ffffffff1660e01b8152600401610a839493929190611d4b565b600060405180830381600087803b158015610a9d57600080fd5b505af1158015610ab1573d6000803e3d6000fd5b505050505b600454858590501015610c365760005b85859050600454610ad79190611d90565b811015610c1957600360008288889050610af19190611781565b8152602001908152602001600020600360008381526020019081526020016000206000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600282015481600201556003820154816003015560048201816004019081610c089190611fab565b509050508080600101915050610ac6565b5084849050600454610c2b9190611d90565b600481905550610c3f565b60006004819055505b610c47610fd4565b600681905550600080600654815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f672ebfecd081c72b12452a84f8b6d051a1f32cda55cdf8992251279a5408b5a5600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610d1691906112b6565b60405180910390a15095945050505050565b60045481565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015490806003015490806004018054610da9906118e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd5906118e2565b8015610e225780601f10610df757610100808354040283529160200191610e22565b820191906000526020600020905b815481529060010190602001808311610e0557829003601f168201915b5050505050905085565b60025481565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60006003600060046000815480929190610ea890611739565b9190505581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508381600201819055503481600301819055508282826004019182610f6792919061209e565b507ff67a2314f80fd951705a8cb64e24285516f2937f5e0db904aa6d29f3bae1d02783838360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460030154604051610fc5949392919061216e565b60405180910390a15050505050565b6000610fde611017565b90506000806000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055505090565b60008060005b60025481101561109b5760008082815260200190815260200160002060030160009054906101000a900460ff1661108e5760008082815260200190815260200160002060020154421161108e57600080828152602001908152602001600020600101548261108b9190611781565b91505b808060010191505061101d565b50600081116110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d6906121fa565b60405180910390fd5b600081446110ed9190612249565b9050600080600090505b6002548110156111855760008082815260200190815260200160002060030160009054906101000a900460ff16611178576000808281526020019081526020016000206002015442116111785760008082815260200190815260200160002060010154826111659190611781565b91508282111561117757809450611185565b5b80806001019150506110f7565b5050505090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111c182611196565b9050919050565b6111d1816111b6565b81146111dc57600080fd5b50565b6000813590506111ee816111c8565b92915050565b6000819050919050565b611207816111f4565b811461121257600080fd5b50565b600081359050611224816111fe565b92915050565b6000806000606084860312156112435761124261118c565b5b6000611251868287016111df565b935050602061126286828701611215565b925050604061127386828701611215565b9150509250925092565b611286816111f4565b82525050565b60006020820190506112a1600083018461127d565b92915050565b6112b0816111b6565b82525050565b60006020820190506112cb60008301846112a7565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126112f6576112f56112d1565b5b8235905067ffffffffffffffff811115611313576113126112d6565b5b60208301915083600182028301111561132f5761132e6112db565b5b9250929050565b60008083601f84011261134c5761134b6112d1565b5b8235905067ffffffffffffffff811115611369576113686112d6565b5b602083019150836020820283011115611385576113846112db565b5b9250929050565b6000806000806000606086880312156113a8576113a761118c565b5b600086013567ffffffffffffffff8111156113c6576113c5611191565b5b6113d2888289016112e0565b9550955050602086013567ffffffffffffffff8111156113f5576113f4611191565b5b61140188828901611336565b9350935050604061141488828901611215565b9150509295509295909350565b6000602082840312156114375761143661118c565b5b600061144584828501611215565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561148857808201518184015260208101905061146d565b60008484015250505050565b6000601f19601f8301169050919050565b60006114b08261144e565b6114ba8185611459565b93506114ca81856020860161146a565b6114d381611494565b840191505092915050565b600060a0820190506114f360008301886112a7565b61150060208301876112a7565b61150d604083018661127d565b61151a606083018561127d565b818103608083015261152c81846114a5565b90509695505050505050565b60008115159050919050565b61154d81611538565b82525050565b600060808201905061156860008301876112a7565b611575602083018661127d565b611582604083018561127d565b61158f6060830184611544565b95945050505050565b600080600080606085870312156115b2576115b161118c565b5b60006115c0878288016111df565b94505060206115d187828801611215565b935050604085013567ffffffffffffffff8111156115f2576115f1611191565b5b6115fe878288016112e0565b925092505092959194509250565b7f616363657074417661696c6162696c697479206d757374206f6e6c792062652060008201527f63616c6c65642062792044414f20636f6e747261637400000000000000000000602082015250565b6000611668603683611459565b91506116738261160c565b604082019050919050565b600060208201905081810360008301526116978161165b565b9050919050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b60006116d4601183611459565b91506116df8261169e565b602082019050919050565b60006020820190508181036000830152611703816116c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611744826111f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117765761177561170a565b5b600182019050919050565b600061178c826111f4565b9150611797836111f4565b92508282019050808211156117af576117ae61170a565b5b92915050565b7f426174636820726573756c74206d757374206265207375626d6974746564206260008201527f792063757272656e7420626174636820776f726b657200000000000000000000602082015250565b6000611811603683611459565b915061181c826117b5565b604082019050919050565b6000602082019050818103600083015261184081611804565b9050919050565b7f42617463682073697a6520746f6f206c61726765000000000000000000000000600082015250565b600061187d601483611459565b915061188882611847565b602082019050919050565b600060208201905081810360008301526118ac81611870565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118fa57607f821691505b60208210810361190d5761190c6118b3565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154611940816118e2565b61194a8186611913565b94506001821660008114611965576001811461197a576119ad565b60ff19831686528115158202860193506119ad565b6119838561191e565b60005b838110156119a557815481890152600182019150602081019050611986565b838801955050505b50505092915050565b60006119c28284611933565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112611a2857611a276119fc565b5b80840192508235915067ffffffffffffffff821115611a4a57611a49611a01565b5b602083019250600182023603831315611a6657611a65611a06565b5b509250929050565b82818337600083830152505050565b6000611a898385611913565b9350611a96838584611a6e565b82840190509392505050565b6000611aaf828486611a7d565b91508190509392505050565b7f4261746368206974656d206d69736d6174636800000000000000000000000000600082015250565b6000611af1601383611459565b9150611afc82611abb565b602082019050919050565b60006020820190508181036000830152611b2081611ae4565b9050919050565b6000611b338385611459565b9350611b40838584611a6e565b611b4983611494565b840190509392505050565b600060029050919050565b600081905092915050565b6000819050919050565b611b7d816111f4565b82525050565b6000611b8f8383611b74565b60208301905092915050565b6000602082019050919050565b611bb181611b54565b611bbb8184611b5f565b9250611bc682611b6a565b8060005b83811015611bf7578151611bde8782611b83565b9650611be983611b9b565b925050600181019050611bca565b505050505050565b6000819050919050565b6000819050919050565b6000611c2e611c29611c2484611bff565b611c09565b6111f4565b9050919050565b611c3e81611c13565b82525050565b600082825260208201905092915050565b50565b6000611c65600083611c44565b9150611c7082611c55565b600082019050919050565b6000610140820190508181036000830152611c97818a8c611b27565b9050611ca6602083018961127d565b611cb36040830188611ba8565b611cc06080830187611ba8565b611ccd60c0830186611c35565b611cda60e0830185611544565b611ce8610100830184611544565b818103610120830152611cfa81611c58565b90509998505050505050505050565b600081519050611d18816111fe565b92915050565b600060208284031215611d3457611d3361118c565b5b6000611d4284828501611d09565b91505092915050565b6000608082019050611d60600083018761127d565b611d6d60208301866112a7565b611d7a604083018561127d565b611d876060830184611544565b95945050505050565b6000611d9b826111f4565b9150611da6836111f4565b9250828203905081811115611dbe57611dbd61170a565b5b92915050565b600081549050611dd3816118e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611e6b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611e2e565b611e758683611e2e565b95508019841693508086168417925050509392505050565b6000611ea8611ea3611e9e846111f4565b611c09565b6111f4565b9050919050565b6000819050919050565b611ec283611e8d565b611ed6611ece82611eaf565b848454611e3b565b825550505050565b600090565b611eeb611ede565b611ef6818484611eb9565b505050565b5b81811015611f1a57611f0f600082611ee3565b600181019050611efc565b5050565b601f821115611f5f57611f3081611e09565b611f3984611e1e565b81016020851015611f48578190505b611f5c611f5485611e1e565b830182611efb565b50505b505050565b600082821c905092915050565b6000611f8260001984600802611f64565b1980831691505092915050565b6000611f9b8383611f71565b9150826002028217905092915050565b818103611fb9575050612091565b611fc282611dc4565b67ffffffffffffffff811115611fdb57611fda611dda565b5b611fe582546118e2565b611ff0828285611f1e565b6000601f83116001811461201f576000841561200d578287015490505b6120178582611f8f565b86555061208a565b601f19841661202d87611e09565b965061203886611e09565b60005b828110156120605784890154825560018201915060018501945060208101905061203b565b8683101561207d5784890154612079601f891682611f71565b8355505b6001600288020188555050505b5050505050505b565b600082905092915050565b6120a88383612093565b67ffffffffffffffff8111156120c1576120c0611dda565b5b6120cb82546118e2565b6120d6828285611f1e565b6000601f83116001811461210557600084156120f3578287013590505b6120fd8582611f8f565b865550612165565b601f19841661211386611e09565b60005b8281101561213b57848901358255600182019150602085019450602081019050612116565b868310156121585784890135612154601f891682611f71565b8355505b6001600288020188555050505b50505050505050565b60006060820190508181036000830152612189818688611b27565b905061219860208301856112a7565b6121a5604083018461127d565b95945050505050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006121e4601a83611459565b91506121ef826121ae565b602082019050919050565b60006020820190508181036000830152612213816121d7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612254826111f4565b915061225f836111f4565b92508261226f5761226e61221a565b5b82820690509291505056fea2646970667358221220115a2824c33b295f7dc9f549eab70cbadd2c73f626a90b55c2592c40e01cc52364736f6c63430008180033",
"deployedBytecode": "0x60806040526004361061007b5760003560e01c8063bfb231d21161004e578063bfb231d214610150578063c4a9e11614610191578063d5a44f86146101bc578063f85c5a8a146101fc5761007b565b8063216ed6ad1461008057806324364a6b146100bd5780632c6a2e83146100e85780636bfb0d0114610125575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a2919061122a565b610218565b6040516100b4919061128c565b60405180910390f35b3480156100c957600080fd5b506100d2610561565b6040516100df91906112b6565b60405180910390f35b3480156100f457600080fd5b5061010f600480360381019061010a919061138c565b610587565b60405161011c919061128c565b60405180910390f35b34801561013157600080fd5b5061013a610d28565b604051610147919061128c565b60405180910390f35b34801561015c57600080fd5b5061017760048036038101906101729190611421565b610d2e565b6040516101889594939291906114de565b60405180910390f35b34801561019d57600080fd5b506101a6610e2c565b6040516101b3919061128c565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190611421565b610e32565b6040516101f39493929190611553565b60405180910390f35b61021660048036038101906102119190611598565b610e8f565b005b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161029f9061167e565b60405180910390fd5b600083116102eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e2906116ea565b60405180910390fd5b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811480156103a057508473ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561040757600260008154809291906103b890611739565b91905055905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506104ab565b60008082815260200190815260200160002060030160009054906101000a900460ff1615610491576002600081548092919061044290611739565b91905055905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506104aa565b6000808281526020019081526020016000206001015491505b5b60008060008381526020019081526020016000209050858160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084816001018190555083426105199190611781565b81600201819055507fa85b1153cd317f9d39e14d8dbfb592ffb46123e9fc61b21b3f70d7d90a81a7e982604051610550919061128c565b60405180910390a150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066f57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461066e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066590611827565b60405180910390fd5b5b6004548484905011156106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae90611893565b60405180910390fd5b60005b8484905081101561077857600360008281526020019081526020016000206004016040516106e891906119b6565b6040518091039020858583818110610703576107026119cd565b5b90506020028101906107159190611a0b565b604051610723929190611aa2565b60405180910390201461076b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076290611b07565b60405180910390fd5b80806001019150506106ba565b50600080600090505b858590508110156107bd576003600082815260200190815260200160002060030154826107ae9190611781565b91508080600101915050610781565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7382898987604051806040016040528060018152602001600381525060405180604001604052806001815260200160028152506064600160006040518a63ffffffff1660e01b8152600401610855989796959493929190611c7b565b60206040518083038185885af1158015610873573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108989190611d1e565b915060005b85859050811015610993577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b3846003600085815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360008681526020019081526020016000206002015460016040518563ffffffff1660e01b81526004016109549493929190611d4b565b600060405180830381600087803b15801561096e57600080fd5b505af1158015610982573d6000803e3d6000fd5b50505050808060010191505061089d565b50600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663975762b383600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008060065481526020019081526020016000206001015460016040518563ffffffff1660e01b8152600401610a839493929190611d4b565b600060405180830381600087803b158015610a9d57600080fd5b505af1158015610ab1573d6000803e3d6000fd5b505050505b600454858590501015610c365760005b85859050600454610ad79190611d90565b811015610c1957600360008288889050610af19190611781565b8152602001908152602001600020600360008381526020019081526020016000206000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600282015481600201556003820154816003015560048201816004019081610c089190611fab565b509050508080600101915050610ac6565b5084849050600454610c2b9190611d90565b600481905550610c3f565b60006004819055505b610c47610fd4565b600681905550600080600654815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f672ebfecd081c72b12452a84f8b6d051a1f32cda55cdf8992251279a5408b5a5600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610d1691906112b6565b60405180910390a15095945050505050565b60045481565b60036020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015490806003015490806004018054610da9906118e2565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd5906118e2565b8015610e225780601f10610df757610100808354040283529160200191610e22565b820191906000526020600020905b815481529060010190602001808311610e0557829003601f168201915b5050505050905085565b60025481565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16905084565b60006003600060046000815480929190610ea890611739565b9190505581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508381600201819055503481600301819055508282826004019182610f6792919061209e565b507ff67a2314f80fd951705a8cb64e24285516f2937f5e0db904aa6d29f3bae1d02783838360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168460030154604051610fc5949392919061216e565b60405180910390a15050505050565b6000610fde611017565b90506000806000838152602001908152602001600020905060018160030160006101000a81548160ff0219169083151502179055505090565b60008060005b60025481101561109b5760008082815260200190815260200160002060030160009054906101000a900460ff1661108e5760008082815260200190815260200160002060020154421161108e57600080828152602001908152602001600020600101548261108b9190611781565b91505b808060010191505061101d565b50600081116110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d6906121fa565b60405180910390fd5b600081446110ed9190612249565b9050600080600090505b6002548110156111855760008082815260200190815260200160002060030160009054906101000a900460ff16611178576000808281526020019081526020016000206002015442116111785760008082815260200190815260200160002060010154826111659190611781565b91508282111561117757809450611185565b5b80806001019150506110f7565b5050505090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111c182611196565b9050919050565b6111d1816111b6565b81146111dc57600080fd5b50565b6000813590506111ee816111c8565b92915050565b6000819050919050565b611207816111f4565b811461121257600080fd5b50565b600081359050611224816111fe565b92915050565b6000806000606084860312156112435761124261118c565b5b6000611251868287016111df565b935050602061126286828701611215565b925050604061127386828701611215565b9150509250925092565b611286816111f4565b82525050565b60006020820190506112a1600083018461127d565b92915050565b6112b0816111b6565b82525050565b60006020820190506112cb60008301846112a7565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126112f6576112f56112d1565b5b8235905067ffffffffffffffff811115611313576113126112d6565b5b60208301915083600182028301111561132f5761132e6112db565b5b9250929050565b60008083601f84011261134c5761134b6112d1565b5b8235905067ffffffffffffffff811115611369576113686112d6565b5b602083019150836020820283011115611385576113846112db565b5b9250929050565b6000806000806000606086880312156113a8576113a761118c565b5b600086013567ffffffffffffffff8111156113c6576113c5611191565b5b6113d2888289016112e0565b9550955050602086013567ffffffffffffffff8111156113f5576113f4611191565b5b61140188828901611336565b9350935050604061141488828901611215565b9150509295509295909350565b6000602082840312156114375761143661118c565b5b600061144584828501611215565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561148857808201518184015260208101905061146d565b60008484015250505050565b6000601f19601f8301169050919050565b60006114b08261144e565b6114ba8185611459565b93506114ca81856020860161146a565b6114d381611494565b840191505092915050565b600060a0820190506114f360008301886112a7565b61150060208301876112a7565b61150d604083018661127d565b61151a606083018561127d565b818103608083015261152c81846114a5565b90509695505050505050565b60008115159050919050565b61154d81611538565b82525050565b600060808201905061156860008301876112a7565b611575602083018661127d565b611582604083018561127d565b61158f6060830184611544565b95945050505050565b600080600080606085870312156115b2576115b161118c565b5b60006115c0878288016111df565b94505060206115d187828801611215565b935050604085013567ffffffffffffffff8111156115f2576115f1611191565b5b6115fe878288016112e0565b925092505092959194509250565b7f616363657074417661696c6162696c697479206d757374206f6e6c792062652060008201527f63616c6c65642062792044414f20636f6e747261637400000000000000000000602082015250565b6000611668603683611459565b91506116738261160c565b604082019050919050565b600060208201905081810360008301526116978161165b565b9050919050565b7f4e6f207374616b652070726f7669646564000000000000000000000000000000600082015250565b60006116d4601183611459565b91506116df8261169e565b602082019050919050565b60006020820190508181036000830152611703816116c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611744826111f4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117765761177561170a565b5b600182019050919050565b600061178c826111f4565b9150611797836111f4565b92508282019050808211156117af576117ae61170a565b5b92915050565b7f426174636820726573756c74206d757374206265207375626d6974746564206260008201527f792063757272656e7420626174636820776f726b657200000000000000000000602082015250565b6000611811603683611459565b915061181c826117b5565b604082019050919050565b6000602082019050818103600083015261184081611804565b9050919050565b7f42617463682073697a6520746f6f206c61726765000000000000000000000000600082015250565b600061187d601483611459565b915061188882611847565b602082019050919050565b600060208201905081810360008301526118ac81611870565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118fa57607f821691505b60208210810361190d5761190c6118b3565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154611940816118e2565b61194a8186611913565b94506001821660008114611965576001811461197a576119ad565b60ff19831686528115158202860193506119ad565b6119838561191e565b60005b838110156119a557815481890152600182019150602081019050611986565b838801955050505b50505092915050565b60006119c28284611933565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112611a2857611a276119fc565b5b80840192508235915067ffffffffffffffff821115611a4a57611a49611a01565b5b602083019250600182023603831315611a6657611a65611a06565b5b509250929050565b82818337600083830152505050565b6000611a898385611913565b9350611a96838584611a6e565b82840190509392505050565b6000611aaf828486611a7d565b91508190509392505050565b7f4261746368206974656d206d69736d6174636800000000000000000000000000600082015250565b6000611af1601383611459565b9150611afc82611abb565b602082019050919050565b60006020820190508181036000830152611b2081611ae4565b9050919050565b6000611b338385611459565b9350611b40838584611a6e565b611b4983611494565b840190509392505050565b600060029050919050565b600081905092915050565b6000819050919050565b611b7d816111f4565b82525050565b6000611b8f8383611b74565b60208301905092915050565b6000602082019050919050565b611bb181611b54565b611bbb8184611b5f565b9250611bc682611b6a565b8060005b83811015611bf7578151611bde8782611b83565b9650611be983611b9b565b925050600181019050611bca565b505050505050565b6000819050919050565b6000819050919050565b6000611c2e611c29611c2484611bff565b611c09565b6111f4565b9050919050565b611c3e81611c13565b82525050565b600082825260208201905092915050565b50565b6000611c65600083611c44565b9150611c7082611c55565b600082019050919050565b6000610140820190508181036000830152611c97818a8c611b27565b9050611ca6602083018961127d565b611cb36040830188611ba8565b611cc06080830187611ba8565b611ccd60c0830186611c35565b611cda60e0830185611544565b611ce8610100830184611544565b818103610120830152611cfa81611c58565b90509998505050505050505050565b600081519050611d18816111fe565b92915050565b600060208284031215611d3457611d3361118c565b5b6000611d4284828501611d09565b91505092915050565b6000608082019050611d60600083018761127d565b611d6d60208301866112a7565b611d7a604083018561127d565b611d876060830184611544565b95945050505050565b6000611d9b826111f4565b9150611da6836111f4565b9250828203905081811115611dbe57611dbd61170a565b5b92915050565b600081549050611dd3816118e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302611e6b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611e2e565b611e758683611e2e565b95508019841693508086168417925050509392505050565b6000611ea8611ea3611e9e846111f4565b611c09565b6111f4565b9050919050565b6000819050919050565b611ec283611e8d565b611ed6611ece82611eaf565b848454611e3b565b825550505050565b600090565b611eeb611ede565b611ef6818484611eb9565b505050565b5b81811015611f1a57611f0f600082611ee3565b600181019050611efc565b5050565b601f821115611f5f57611f3081611e09565b611f3984611e1e565b81016020851015611f48578190505b611f5c611f5485611e1e565b830182611efb565b50505b505050565b600082821c905092915050565b6000611f8260001984600802611f64565b1980831691505092915050565b6000611f9b8383611f71565b9150826002028217905092915050565b818103611fb9575050612091565b611fc282611dc4565b67ffffffffffffffff811115611fdb57611fda611dda565b5b611fe582546118e2565b611ff0828285611f1e565b6000601f83116001811461201f576000841561200d578287015490505b6120178582611f8f565b86555061208a565b601f19841661202d87611e09565b965061203886611e09565b60005b828110156120605784890154825560018201915060018501945060208101905061203b565b8683101561207d5784890154612079601f891682611f71565b8355505b6001600288020188555050505b5050505050505b565b600082905092915050565b6120a88383612093565b67ffffffffffffffff8111156120c1576120c0611dda565b5b6120cb82546118e2565b6120d6828285611f1e565b6000601f83116001811461210557600084156120f3578287013590505b6120fd8582611f8f565b865550612165565b601f19841661211386611e09565b60005b8281101561213b57848901358255600182019150602085019450602081019050612116565b868310156121585784890135612154601f891682611f71565b8355505b6001600288020188555050505b50505050505050565b60006060820190508181036000830152612189818688611b27565b905061219860208301856112a7565b6121a5604083018461127d565b95945050505050565b7f4e6f20617661696c61626c6520776f726b6572207374616b6573000000000000600082015250565b60006121e4601a83611459565b91506121ef826121ae565b602082019050919050565b60006020820190508181036000830152612213816121d7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612254826111f4565b915061225f836111f4565b92508261226f5761226e61221a565b5b82820690509291505056fea2646970667358221220115a2824c33b295f7dc9f549eab70cbadd2c73f626a90b55c2592c40e01cc52364736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}