@pvpbet/pvpbet
Version:
A decentralized PVP betting platform based on the Ethereum Virtual Machine (EVM).
196 lines • 102 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "BetFactory",
"sourceName": "contracts/BetFactory.sol",
"abi": [
{
"inputs": [],
"name": "ERC1167FailedCreateClone",
"type": "error"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "chipMinValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "voteMinValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minWageredTotalAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "verificationRatio",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "announcementPeriodDuration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "arbitratingPeriodDuration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "singleOptionMaxAmountRatio",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "confirmDisputeAmountRatio",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "protocolRewardRatio",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "creatorRewardRatio",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "verifierRewardRatio",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "countPerRelease",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "countPerPenalize",
"type": "uint256"
}
],
"internalType": "struct IBet.BetConfig",
"name": "config",
"type": "tuple"
},
{
"components": [
{
"internalType": "string",
"name": "title",
"type": "string"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "iconURL",
"type": "string"
},
{
"internalType": "string",
"name": "forumURL",
"type": "string"
},
{
"internalType": "string[]",
"name": "options",
"type": "string[]"
}
],
"internalType": "struct IBet.BetDetails",
"name": "details",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "wageringPeriodDuration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "verifyingPeriodDuration",
"type": "uint256"
},
{
"internalType": "address",
"name": "creator",
"type": "address"
},
{
"internalType": "address",
"name": "chip",
"type": "address"
},
{
"internalType": "address",
"name": "vote",
"type": "address"
},
{
"internalType": "address",
"name": "govToken",
"type": "address"
},
{
"internalType": "address",
"name": "betManager",
"type": "address"
},
{
"internalType": "address",
"name": "betOptionFactory",
"type": "address"
}
],
"name": "createBet",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50615f25806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306fdde03146100465780634fe3a3e01461008157806354fd4d50146100ac575b600080fd5b60408051808201909152600d81526c505650426574466163746f727960981b60208201525b6040516100789190610297565b60405180910390f35b61009461008f3660046102c8565b6100b4565b6040516001600160a01b039091168152602001610078565b61006b6101b3565b6000805481906001600160a01b0316610112576040516100d390610244565b604051809103906000f0801580156100ef573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b038316179055905061012a565b600054610127906001600160a01b03166101d2565b90505b806001600160a01b031663f05516426101416101b3565b8e8e8e8e8e8e8e8e8e8e6040518c63ffffffff1660e01b81526004016101719b9a99989796959493929190610573565b600060405180830381600087803b15801561018b57600080fd5b505af115801561019f573d6000803e3d6000fd5b50929e9d5050505050505050505050505050565b6040805180820190915260058152640c4b8c8b8d60da1b602082015290565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b03811661023f576040516330be1a3d60e21b815260040160405180910390fd5b919050565b6158528061069e83390190565b6000815180845260005b818110156102775760208185018101518683018201520161025b565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006102aa6020830184610251565b9392505050565b80356001600160a01b038116811461023f57600080fd5b6000806000806000806000806000808a8c036102c08112156102e957600080fd5b6101a0808212156102f957600080fd5b8c9b508b013590506001600160401b0381111561031557600080fd5b8b0160a0818e03121561032757600080fd5b98506101c08b013597506101e08b013596506103466102008c016102b1565b95506103556102208c016102b1565b94506103646102408c016102b1565b93506103736102608c016102b1565b92506103826102808c016102b1565b91506103916102a08c016102b1565b90509295989b9194979a5092959850565b6001600160a01b03169052565b6000808335601e198436030181126103c657600080fd5b83016020810192503590506001600160401b038111156103e557600080fd5b8036038213156103f457600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208086019550808560051b8301018460005b8781101561047757848303601f1901895261045882886103af565b6104638582846103fb565b9a86019a945050509083019060010161043d565b5090979650505050505050565b600061049082836103af565b60a085526104a260a0860182846103fb565b9150506104b260208401846103af565b85830360208701526104c58382846103fb565b925050506104d660408401846103af565b85830360408701526104e98382846103fb565b925050506104fa60608401846103af565b858303606087015261050d8382846103fb565b925050506080830135601e1984360301811261052857600080fd5b83016020810190356001600160401b0381111561054457600080fd5b8060051b360382131561055657600080fd5b8583036080870152610569838284610424565b9695505050505050565b60006102e08083526105878184018f610251565b90508c35602084015260208d0135604084015260408d0135606084015260608d0135608084015260808d013560a084015260a08d013560c084015260c08d013560e084015261010060e08e013581850152610120818f0135818601526101409150808f01358286015250610160818f0135818601526101809150808f01358286015250808e01356101a0850152508281036101c0840152610628818d610484565b915050896101e0830152886102008301526106476102208301896103a2565b6106556102408301886103a2565b6106636102608301876103a2565b6106716102808301866103a2565b61067f6102a08301856103a2565b61068d6102c08301846103a2565b9c9b50505050505050505050505056fe608060405234801561001057600080fd5b5061583180620000216000396000f3fe60806040526004361061027f5760003560e01c806302214b62146103be578063024c4128146103e957806302d05d3f1461040857806303fdf3131461042b578063049fe0ed146104405780630576ef611461045557806306fdde031461046a5780631069143a146104a257806311610c25146104c4578063167cba70146104d757806318607ca31461050d578063200d2ed2146105305780632533f03c146105525780632e7502b91461056757806331d8a4cb1461057c578063324527bf1461059157806335e2e1b2146105a6578063362afeab146105c657806337bdc99b146105db57806341898c0d146105fb57806342551d3b1461061057806342c1b507146106305780634fe3db751461064d57806354fd4d501461067a578063565974d31461068f5780635e44c336146106b1578063632a9a52146106d157806379502c55146106e657806379dc9f511461078e5780637a90d026146107a35780638385be62146107b8578063838c48c0146107cd57806386d1a69f146107e257806386d6282c146107f757806390d1ab581461081757806395e7f02d1461082c578063961325211461084c5780639e39aed5146108645780639e654c1214610879578063a3cba3c71461088e578063b2525eab146108a3578063b39da0d6146108b8578063b61500e4146108cd578063bfa54717146108e2578063c7f9218a14610902578063cd4d32e814610922578063cf8efc9d14610937578063d840008c1461094c578063dba412c01461096c578063e5bdad4014610981578063e5d0e47514610996578063e74ca19b146109b6578063f0551642146109cb578063f34b709f146109eb578063f3a9156914610a00578063f9e46b7814610a1857600080fd5b366103b957600061028e610a4e565b905060048160068111156102a4576102a4614b66565b1061034a576102b233610a64565b156102b957005b60068160068111156102cd576102cd614b66565b036102eb5760405163b8ba16bf60e01b815260040160405180910390fd5b60048160068111156102ff576102ff614b66565b148061031c5750600581600681111561031a5761031a614b66565b145b1561034a5734156103405760405163b8ba16bf60e01b815260040160405180910390fd5b610348610ae3565b005b601d546001600160a01b03161561038a57601d54604051631f60ef2760e21b8152610381916001600160a01b031690600401614b89565b60405180910390fd5b610392610b3c565b156103b05760405163b8ba16bf60e01b815260040160405180910390fd5b61034834610b52565b600080fd5b3480156103ca57600080fd5b506103d3610b70565b6040516103e09190614b89565b60405180910390f35b3480156103f557600080fd5b50600a545b6040519081526020016103e0565b34801561041457600080fd5b50601c5461010090046001600160a01b03166103d3565b34801561043757600080fd5b506103fa610b88565b34801561044c57600080fd5b506024546103fa565b34801561046157600080fd5b506002546103fa565b34801561047657600080fd5b5060408051808201909152600681526514159410995d60d21b60208201525b6040516103e09190614be3565b3480156104ae57600080fd5b506104b7610c39565b6040516103e09190614c3a565b3480156104d057600080fd5b50306103d3565b3480156104e357600080fd5b506103fa6104f2366004614c72565b6001600160a01b031660009081526004602052604090205490565b34801561051957600080fd5b50610522610c9b565b6040516103e0929190614c8f565b34801561053c57600080fd5b50610545610a4e565b6040516103e09190614c9d565b34801561055e57600080fd5b506005546103fa565b34801561057357600080fd5b50610545610cba565b34801561058857600080fd5b506103fa610d2c565b34801561059d57600080fd5b506103fa610db7565b3480156105b257600080fd5b5060015b60405190151581526020016103e0565b3480156105d257600080fd5b506103fa610e37565b3480156105e757600080fd5b506103486105f6366004614cc5565b610e53565b34801561060757600080fd5b5061052261114b565b34801561061c57600080fd5b5061034861062b366004614cc5565b61116a565b34801561063c57600080fd5b50602954610100900460ff166105b6565b34801561065957600080fd5b5061066d610668366004614cde565b61120f565b6040516103e09190614d18565b34801561068657600080fd5b50610495611384565b34801561069b57600080fd5b506106a461140d565b6040516103e09190614d65565b3480156106bd57600080fd5b5061066d6106cc366004614cde565b611772565b3480156106dd57600080fd5b506103d36118d9565b3480156106f257600080fd5b506106fb6118e8565b6040516103e09190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018091820151918101919091526101a00190565b34801561079a57600080fd5b506103486119ce565b3480156107af57600080fd5b506003546103fa565b3480156107c457600080fd5b506000546103fa565b3480156107d957600080fd5b506103fa611ae2565b3480156107ee57600080fd5b50610348610ae3565b34801561080357600080fd5b50610348610812366004614cc5565b610b52565b34801561082357600080fd5b506103fa611b85565b34801561083857600080fd5b50610348610847366004614e3d565b611b9e565b34801561085857600080fd5b5060295460ff166105b6565b34801561087057600080fd5b50610348611bbd565b34801561088557600080fd5b5061066d611be9565b34801561089a57600080fd5b506103d3611bf9565b3480156108af57600080fd5b50600b546103fa565b3480156108c457600080fd5b506026546103fa565b3480156108d957600080fd5b506103d3611c11565b3480156108ee57600080fd5b506103486108fd366004614e3d565b611c20565b34801561090e57600080fd5b5061034861091d366004614cc5565b611cfb565b34801561092e57600080fd5b50610348611f1e565b34801561094357600080fd5b506025546103fa565b34801561095857600080fd5b50610348610967366004614eaa565b611f2a565b34801561097857600080fd5b506103fa611f52565b34801561098d57600080fd5b506103fa611f5d565b3480156109a257600080fd5b506103486109b1366004614cc5565b611f67565b3480156109c257600080fd5b506009546103fa565b3480156109d757600080fd5b506103486109e6366004614f47565b61215d565b3480156109f757600080fd5b5061066d612325565b348015610a0c57600080fd5b5060075460ff166105b6565b348015610a2457600080fd5b506103fa610a33366004614c72565b6001600160a01b031660009081526001602052604090205490565b6000610a58612337565b50949695505050505050565b60006001600160a01b0382163b15610adb57816001600160a01b0316638e36d24a6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610ad0575060408051601f3d908101601f19168201909252610acd91810190615046565b60015b15610adb5792915050565b506000919050565b60295460ff168015610af757506000602654115b8015610b0d57506023546001600160a01b031615155b8015610b215750602954610100900460ff16155b15610b3057610b2e611f1e565b565b601454610b2e90610e53565b6000333b151580610b4d5750333214155b905090565b610b5b81612516565b610b63612545565b15610b6d57426026555b50565b600080610b7b612337565b5093979650505050505050565b601b546000908190815b81811015610c3157610c27601b8281548110610bb057610bb0615068565b600091825260209182902001546040805163833e194360e01b815290516001600160a01b039092169263833e1943926004808401938290030181865afa158015610bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c22919061507e565b840190565b9250600101610b92565b509092915050565b6060601b805480602002602001604051908101604052809291908181526020018280548015610c9157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c73575b5050505050905090565b6000806000610ca8612337565b50602754999098509650505050505050565b600080600080610cc8612337565b5050505092509250925082601c60006101000a81548160ff02191690836006811115610cf657610cf6614b66565b0217905550602280546001600160a01b039384166001600160a01b03199182161790915560238054929093169116179055919050565b600080610d3860025490565b601b5490915060005b81811015610c3157610dad601b8281548110610d5f57610d5f615068565b6000918252602091829020015460408051630576ef6160e01b815290516001600160a01b0390921692630576ef61926004808401938290030181865afa158015610bfe573d6000803e3d6000fd5b9250600101610d41565b601b546000908190815b81811015610c3157610e2d601b8281548110610ddf57610ddf615068565b60009182526020918290200154604080516321a29bb360e21b815290516001600160a01b039092169263868a6ecc926004808401938290030181865afa158015610bfe573d6000803e3d6000fd5b9250600101610dc1565b6000610b4d6009600701546064610e4c610db7565b9190612559565b60295460ff1615610e775760405163354348b160e11b815260040160405180910390fd5b600080600080600080610e88612337565b5095509550955095509550955060008380610ea05750825b90506004876006811115610eb657610eb6614b66565b1015610ed557604051630ce9739960e31b815260040160405180910390fd5b602280546001600160a01b038089166001600160a01b03199283161790925560238054928816929091169190911790556027546000610f1e84610f18848d61261e565b90612636565b60278190559050337fb21fb52d5749b80f3182f8c6992236b5e5576681880914484d7f4c9b062e619e610f518484615097565b60405190815260200160405180910390a2838103610fbd576029805460ff19166001179055821580610f8a5750602954610100900460ff165b610f945788610f97565b60065b601c805460ff19166001836006811115610fb357610fb3614b66565b0217905550610fe2565b601c80548a919060ff19166001836006811115610fdc57610fdc614b66565b02179055505b60008661100a57610ff481848461264c565b905080821161100a575050505050505050505050565b60048a600681111561101e5761101e614b66565b036110445761102e8184846126de565b9050808211611044575050505050505050505050565b601b5460005b8181101561110e576000601b828154811061106757611067615068565b6000918252602090912001546001600160a01b0316905088158061109d57508b6001600160a01b0316816001600160a01b031614155b156110c7576110ae8185888861282b565b93508385116110c7575050505050505050505050505050565b60048d60068111156110db576110db614b66565b14611105576110ec81858888612929565b9350838511611105575050505050505050505050505050565b5060010161104a565b5060295460ff16801561113057508415806111305750602954610100900460ff165b1561113d5761113d6129ea565b505050505050505050505050565b6000806000611158612337565b6028549a909950975050505050505050565b336111758183612a0b565b505061117f6118d9565b6001600160a01b031663b41c7d8d826040518263ffffffff1660e01b81526004016111aa9190614b89565b602060405180830381865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061507e565b82111561120b5760405163162908e360e11b815260040160405180910390fd5b5050565b606060006112828484600080548060200260200160405190810160405280929190818152602001828054801561126e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611250575b5050505050612c3a9092919063ffffffff16565b80519091506000816001600160401b038111156112a1576112a16150b8565b6040519080825280602002602001820160405280156112da57816020015b6112c7614b4f565b8152602001906001900390816112bf5790505b50905060005b828110156113785760008482815181106112fc576112fc615068565b602002602001015190506040518060400160405280826001600160a01b0316815260200160016000846001600160a01b03166001600160a01b031681526020019081526020016000205481525083838151811061135b5761135b615068565b6020026020010181905250506113718160010190565b90506112e0565b50925050505b92915050565b606060088054611393906150ce565b80601f01602080910402602001604051908101604052809291908181526020018280546113bf906150ce565b8015610c915780601f106113e157610100808354040283529160200191610c91565b820191906000526020600020905b8154815290600101906020018083116113ef57509395945050505050565b61143f6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b60166040518060a001604052908160008201805461145c906150ce565b80601f0160208091040260200160405190810160405280929190818152602001828054611488906150ce565b80156114d55780601f106114aa576101008083540402835291602001916114d5565b820191906000526020600020905b8154815290600101906020018083116114b857829003601f168201915b505050505081526020016001820180546114ee906150ce565b80601f016020809104026020016040519081016040528092919081815260200182805461151a906150ce565b80156115675780601f1061153c57610100808354040283529160200191611567565b820191906000526020600020905b81548152906001019060200180831161154a57829003601f168201915b50505050508152602001600282018054611580906150ce565b80601f01602080910402602001604051908101604052809291908181526020018280546115ac906150ce565b80156115f95780601f106115ce576101008083540402835291602001916115f9565b820191906000526020600020905b8154815290600101906020018083116115dc57829003601f168201915b50505050508152602001600382018054611612906150ce565b80601f016020809104026020016040519081016040528092919081815260200182805461163e906150ce565b801561168b5780601f106116605761010080835404028352916020019161168b565b820191906000526020600020905b81548152906001019060200180831161166e57829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156117655783829060005260206000200180546116d8906150ce565b80601f0160208091040260200160405190810160405280929190818152602001828054611704906150ce565b80156117515780601f1061172657610100808354040283529160200191611751565b820191906000526020600020905b81548152906001019060200180831161173457829003601f168201915b5050505050815260200190600101906116b9565b5050505081525050905090565b606060006117e38484600380548060200260200160405190810160405280929190818152602001828054801561126e576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611250575050505050612c3a9092919063ffffffff16565b80519091506000816001600160401b03811115611802576118026150b8565b60405190808252806020026020018201604052801561183b57816020015b611828614b4f565b8152602001906001900390816118205790505b50905060005b8281101561137857600084828151811061185d5761185d615068565b602002602001015190506040518060400160405280826001600160a01b0316815260200160046000846001600160a01b03166001600160a01b03168152602001908152602001600020548152508383815181106118bc576118bc615068565b6020026020010181905250506118d28160010190565b9050611841565b601e546001600160a01b031690565b611953604051806101a00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b50604080516101a0810182526009548152600a546020820152600b5491810191909152600c546060820152600d546080820152600e5460a0820152600f5460c082015260105460e082015260115461010082015260125461012082015260135461014082015260145461016082015260155461018082015290565b3330146119f05733604051633733be5960e21b81526004016103819190614b89565b60075460ff1680611a09575060075462010000900460ff165b610b2e5760003090506003816001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190615102565b6006811115611a8757611a87614b66565b11611aa55760405163164f2ed360e11b815260040160405180910390fd5b6007805461ffff1916610101179055306001600160a01b03821614610b6d5761120b611acf611c11565b6001600160a01b03831690600019612d34565b600080611aed610a4e565b90506000816006811115611b0357611b03614b66565b03611b1057505060245490565b6001816006811115611b2457611b24614b66565b03611b3157505060255490565b6002816006811115611b4557611b45614b66565b03611b5857600d54602554015b91505090565b6003816006811115611b6c57611b6c614b66565b03611b7d57600e5460265401611b52565b600091505090565b6000610b4d600960030154611b98610db7565b90612d43565b611ba88282612d5b565b611bb0612545565b1561120b57426026555050565b333014611bdf5733604051633733be5960e21b81526004016103819190614b89565b610b2e6000611f67565b60008054606091610b4d9161120f565b600080611c04612337565b5092979650505050505050565b601d546001600160a01b031690565b611c286118d9565b6001600160a01b0316336001600160a01b031614611c5b5733604051633733be5960e21b81526004016103819190614b89565b611c658282612a0b565b5050611c6f6118d9565b6001600160a01b031663b41c7d8d836040518263ffffffff1660e01b8152600401611c9a9190614b89565b602060405180830381865afa158015611cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdb919061507e565b81111561120b5760405163162908e360e11b815260040160405180910390fd5b602954610100900460ff1615611d245760405163ec4647a760e01b815260040160405180910390fd5b600080600080600080611d35612337565b9650509550955095509550955082158015611d4e575081155b15611d6c5760405163f316ae5f60e01b815260040160405180910390fd5b6004866006811115611d8057611d80614b66565b1015611d9f57604051630ce9739960e31b815260040160405180910390fd5b602280546001600160a01b038088166001600160a01b03199283161790925560238054928716929091169190911790556028546000611de283610f18848c61261e565b60288190559050337fce6324a0bfd5e264b9b4039aeeab1620f460c269fa080cbd889681a37aaadc65611e158484615097565b60405190815260200160405180910390a2828103611e74576029805461ff001981166101001790915560ff16611e4b5787611e4e565b60065b601c805460ff19166001836006811115611e6a57611e6a614b66565b0217905550611e99565b601c805489919060ff19166001836006811115611e9357611e93614b66565b02179055505b60008515611ec657611eac818484612de6565b9050808211611ec15750505050505050505050565b611eec565b8415611eec57611ed7818484612fe2565b9050808211611eec5750505050505050505050565b602954610100900460ff168015611f05575060295460ff165b15611f1257611f126129ea565b50505050505050505050565b601554610b2e90611cfb565b611f38868686868686613166565b611f40612545565b15611f4a57426026555b505050505050565b6000610b4d60055490565b6000610b4d610b88565b333014611f895733604051633733be5960e21b81526004016103819190614b89565b60075460ff16610b6d576003306001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff79190615102565b600681111561200857612008614b66565b116120265760405163164f2ed360e11b815260040160405180910390fd5b6007805462ff00001916620100001790556000612041611c11565b905060008061204f846131ff565b91509150612065836001600160a01b0316613281565b156120f55760008061207784846132ea565b604051633b3e672f60e01b815291935091506001600160a01b03861690633b3e672f906120aa9085908590600401615123565b6020604051808303816000875af11580156120c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ed9190615046565b505050612157565b815b818110156121555760006003828154811061211457612114615068565b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915061214b90829087906001613445565b50506001016120f7565b505b50505050565b60295462010000900460ff16156121875760405163f92ee8a960e01b815260040160405180910390fd5b6029805462ff000019166201000017905560086121a58c8e836151d5565b50893560095560208a0135600a5560408a0135600b5560608a0135600c5560808a0135600d5560a08a0135600e5560c08a0135600f5560e08a01356010556101008a01356011556101208a01356012556101408a01356013556101608a01356014556101808a013560155588601661221d82826153f9565b505042880160248190558701602555601c80546001600160a01b0380891661010002610100600160a81b031990921691909117909155601d80548783166001600160a01b031991821617909155601e80548784169083168117909155601f80549387169390921692909217905560408051632c97bfe560e11b8152905163592f7fca916004808201926020929091908290030181865afa1580156122c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e9919061552c565b602080546001600160a01b03199081166001600160a01b03938416179091556021805490911691841691909117905561113d818b8b888861360b565b6060610b4d6000600380549050611772565b601c5460225460235460ff909216916001600160a01b03918216911660008080808087600681111561236b5761236b614b66565b148015612379575060245442115b156123b15761238661370c565b1561239457600196506123b1565b61239c610db7565b6000036123ac57600696506123b1565b600596505b60018760068111156123c5576123c5614b66565b1480156123d3575060255442115b156123ff576123e061380a565b95506001600160a01b038616156123fa57600296506123ff565b600596505b600287600681111561241357612413614b66565b0361243f5760265415612429576003965061243f565b600d546025540142111561243f57859450600496505b600387600681111561245357612453614b66565b1480156124655750600e546026540142115b1561249157612472613913565b94506001600160a01b0385161561248c5760049650612491565b600596505b60006026541180156124ab57506001600160a01b03851615155b156124d757856001600160a01b0316856001600160a01b0316036124d257600193506124d7565b600192505b60048760068111156124eb576124eb614b66565b1061250d576124fc86868686613a1c565b915061250a86868686613c65565b90505b90919293949596565b336000806125248385613da6565b91509150612157612533611c11565b6001600160a01b038516908484613fc7565b600061254f610e37565b6005541015905090565b60008383028160001985870982811083820303915050806000036125905783828161258657612586615549565b0492505050612617565b8084116125b05760405163227bc15360e01b815260040160405180910390fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b6000828201838110156126175760001991505061137e565b60008183106126455781612617565b5090919050565b60008061265860035490565b9050848101858411801561266b57508085105b156126d557600061267e87838888614005565b60405163e5d0e47560e01b81526004810182905290925030915063e5d0e47590602401600060405180830381600087803b1580156126bb57600080fd5b505af11580156126cf573d6000803e3d6000fd5b50505050505b95945050505050565b60008084831180156126f05750848411155b612701576126fc610db7565b612709565b612709614037565b60115490915060009061271f9083906064612559565b6012549091506000906127359084906064612559565b60135490915060009061274b9085906064612559565b905060006127618261275d8587890382565b0390565b905088871180156127725750888811155b1561279d57601d54601c5461279b916001600160a01b0361010090920482169116856001613445565b505b60006127ab838b8b8b614112565b9050808a036127b957938201935b8099508988116127d0579550612617945050505050565b6127dc828b8b8b614267565b9050808a036127ea57938101935b809950898811612801579550612617945050505050565b89881180156128105750898911155b1561281e5761281e856143ae565b9998505050505050505050565b6000808590506000816001600160a01b031663648ca5b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612871573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612895919061507e565b905085810186851180156128a857508086105b1561291c5760006128bb88838989614005565b604051634451d16b60e11b8152600481018290529092506001600160a01b03861691506388a3a2d6906024015b600060405180830381600087803b15801561290257600080fd5b505af1158015612916573d6000803e3d6000fd5b50505050505b925050505b949350505050565b6000808590506000816001600160a01b031663a06ec6e56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561296f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612993919061507e565b905085810186851180156129a657508086105b1561291c5760006129b988838989614005565b604051631a4e8e2b60e11b8152600481018290529092506001600160a01b038616915063349d1c56906024016128e8565b601d54602154610b6d916001600160a01b0391821691166000196001613445565b600080600083118015612a1f5750600a5483105b15612a3d5760405163162908e360e11b815260040160405180910390fd5b6000306001600160a01b0316632e7502b96040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa39190615102565b90506003816006811115612ab957612ab9614b66565b1015612ad857604051632ff85a2f60e11b815260040160405180910390fd5b6003816006811115612aec57612aec614b66565b1115612b0b57604051632ff85a2f60e11b815260040160405180910390fd5b6001600160a01b038516600090815260016020526040902080549085905584935091508215801590612b3b575081155b15612b8d57600080546001810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630180546001600160a01b0319166001600160a01b038716179055612bab565b82158015612b9b5750600082115b15612bab57612bab600086614500565b81831115612bcf57612bc7612bc08385615097565b6002540190565b600255612bef565b81831015612bef57612beb612be48484615097565b6002540390565b6002555b846001600160a01b03167f877f0fe4a6f39b635b9a8206da0c22567c53ec96a4a951151162042d47d9dd0d85604051612c2a91815260200190565b60405180910390a2509250929050565b825160609083158015612c4c57508083145b15612c5a5784915050612617565b612c648482612636565b93506000612c7682610f18878761261e565b905060008582036001600160401b03811115612c9457612c946150b8565b604051908082528060200260200182016040528015612cbd578160200160208202803683370190505b509050855b82811015612d2957878181518110612cdc57612cdc615068565b602002602001015182612cf8898461410d90919063ffffffff16565b81518110612d0857612d08615068565b6001600160a01b039290921660209283029190910190910152600101612cc2565b509695505050505050565b60006129218484846000613445565b6000828202838110156126175760001991505061137e565b612d63611c11565b6001600160a01b0316336001600160a01b031614158015612d985750736a950d7edc9608c209c49acf939b2294fef1f2013314155b15612db85733604051633733be5960e21b81526004016103819190614b89565b600080612dc58484613da6565b91509150612157612dd4611c11565b6001600160a01b038616908484613fc7565b602354604080516341c2df3160e11b815290516000926001600160a01b03169183918391638385be629160048083019260209291908290030181865afa158015612e34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e58919061507e565b90508581018685118015612e6b57508086105b15612fd857600080612e7f89848a8a614005565b9150915081600003612edf57306001600160a01b03166379dc9f516040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612ec657600080fd5b505af1158015612eda573d6000803e3d6000fd5b505050505b601d54612fd5906001600160a01b0316612ef860055490565b876001600160a01b0316630576ef616040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5a919061507e565b604051634fe3db7560e01b81526001600160a01b038a1690634fe3db7590612f889089908990600401614c8f565b600060405180830381865afa158015612fa5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fcd91908101906155b7565b929190614608565b50505b9695505050505050565b6022546040805163648ca5b560e01b815290516000926001600160a01b0316918391839163648ca5b59160048083019260209291908290030181865afa158015613030573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613054919061507e565b9050858101868511801561306757508086105b156130da57600061307a88838989614005565b60405163078529fd60e51b8152600481018290529092506001600160a01b038616915063f0a53fa090602401600060405180830381600087803b1580156130c057600080fd5b505af11580156130d4573d6000803e3d6000fd5b50505050505b8096508685116130ee579250612617915050565b61315b836001600160a01b031663833e19436040518163ffffffff1660e01b8152600401602060405180830381865afa15801561312f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613153919061507e565b88888861466e565b979650505050505050565b61316e611c11565b6001600160a01b0316336001600160a01b0316141580156131a35750736a950d7edc9608c209c49acf939b2294fef1f2013314155b156131c35733604051633733be5960e21b81526004016103819190614b89565b6000806131d08888613da6565b915091506131f56131df611c11565b6001600160a01b038a169084848a8a8a8a614763565b5050505050505050565b60065460009081908181158015613214575084155b6003549091508115613239576007805460ff1916600117905560009450925082613279565b8294508560000361324a5784810395505b61325881610f18878961261e565b9350808403613273576007805460ff19166001179055613279565b60068490555b505050915091565b60006001600160a01b0382163b15610adb57816001600160a01b0316636998193a6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610ad0575060408051601f3d908101601f19168201909252610acd91810190615046565b6060808383036000816001600160401b0381111561330a5761330a6150b8565b604051908082528060200260200182016040528015613333578160200160208202803683370190505b5090506000826001600160401b03811115613350576133506150b8565b604051908082528060200260200182016040528015613379578160200160208202803683370190505b509050865b868110156134365760006003828154811061339b5761339b615068565b60009182526020822001546001600160a01b031691508983039050818582815181106133c9576133c9615068565b60200260200101906001600160a01b031690816001600160a01b03168152505060046000836001600160a01b03166001600160a01b031681526020019081526020016000205484828151811061342157613421615068565b6020908102919091010152505060010161337e565b509093509150505b9250929050565b6000806001600160a01b0385166134ce576000198403613463574793505b83600003613475576000915050612921565b6040516001600160a01b038716908590600081818185875af1925050503d80600081146134be576040519150601f19603f3d011682016040523d82523d6000602084013e6134c3565b606091505b5050809150506135cf565b8460018501613547576040516370a0823160e01b81526001600160a01b038216906370a0823190613503903090600401614b89565b602060405180830381865afa158015613520573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613544919061507e565b94505b8460000361355a57600092505050612921565b60405163a9059cbb60e01b81526001600160a01b0382169063a9059cbb90613588908a908990600401615681565b6020604051808303816000875af11580156135a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135cb9190615046565b9150505b806135ff57826135f55760405163c39ba1a960e01b815260048101859052602401610381565b6000915050612921565b50600195945050505050565b84600061361b60808601866152d4565b9050905060005b818110156131f557601b6001600160a01b03841663f6568f8461364860808a018a6152d4565b8581811061365857613658615068565b905060200281019061366a919061528e565b8b308b8b6040518763ffffffff1660e01b815260040161368f969594939291906156c3565b6020604051808303816000875af11580156136ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d2919061552c565b815460018082018455600093845260209093200180546001600160a01b0319166001600160a01b0390921691909117905581019050613622565b601b5460009081908190815b818110156137c2576000601b828154811061373557613735615068565b60009182526020918290200154604080516321a29bb360e21b815290516001600160a01b039092169263868a6ecc926004808401938290030181865afa158015613783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a7919061507e565b9050838111156137b5578093505b9390930192600101613718565b50600b548310156137d7576000935050505090565b600f546000906137ea9085906064612559565b9050808311156137ff57600094505050505090565b600194505050505090565b601b54600090819081908190815b818110156138ef576000601b828154811061383557613835615068565b60009182526020808320909101546040805163833e194360e01b815290516001600160a01b039092169450849263833e1943926004808401938290030181865afa158015613887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ab919061507e565b948501949050858111156138c4578095508196506138e5565b85811480156138db57506001600160a01b03871615155b156138e557600096505b5050600101613818565b506138f8611b85565b82101561390a57600094505050505090565b50919392505050565b60006026546000036139255750600090565b60008061393160025490565b601b54909150819060005b81811015613a13576000601b828154811061395957613959615068565b600091825260208083209091015460408051630576ef6160e01b815290516001600160a01b0390921694508492630576ef61926004808401938290030181865afa1580156139ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139cf919061507e565b948501949050858111156139e857809550819650613a09565b85811480156139ff57506001600160a01b03871615155b15613a0957600096505b505060010161393c565b506138f8611f5d565b60295460009060ff1615613a335750602754612921565b60006001600160a01b038516151584613a5a57613a57613a5260035490565b830190565b91505b8015613b3657613b33866001600160a01b031663a06ec6e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac5919061507e565b613b2f886001600160a01b031663648ca5b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2a919061507e565b850190565b0190565b91505b601b5460005b81811015613c53576000601b8281548110613b5957613b59615068565b6000918252602090912001546001600160a01b03169050861580613b8f5750896001600160a01b0316816001600160a01b031614155b15613c0157613bfe816001600160a01b031663648ca5b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bf9919061507e565b860190565b94505b83613c4a57613c47816001600160a01b031663a06ec6e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bd5573d6000803e3d6000fd5b94505b50600101613b3c565b50600183015b98975050505050505050565b602954600090610100900460ff1615613c815750602854612921565b60008315613cfa57613cf3856001600160a01b0316638385be626040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cee919061507e565b820190565b90506126d5565b82156126d557612fd8856001600160a01b0316638385be626040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d65919061507e565b613b2f886001600160a01b031663648ca5b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bfe573d6000803e3d6000fd5b600080600083118015613dba575060095483105b15613dd85760405163162908e360e11b815260040160405180910390fd5b6000306001600160a01b0316632e7502b96040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613e1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e3e9190615102565b90506002816006811115613e5457613e54614b66565b1015613e7357604051630b699cb560e11b815260040160405180910390fd5b6002816006811115613e8757613e87614b66565b1115613ea5576040516242bb8b60e21b815260040160405180910390fd5b6001600160a01b038516600090815260046020526040902080549085905584935091508215801590613ed5575081155b15613f2a57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b038716179055613f48565b82158015613f385750600082115b15613f4857613f48600386614500565b81831115613f6c57613f64613f5d8385615097565b6005540190565b600555613f8c565b81831015613f8c57613f88613f818484615097565b6005540390565b6005555b846001600160a01b03167f94799ce1f5151942e96745d7a2d873bfb4ef3c373a34cc901e03e4fdc4c8263f85604051612c2a91815260200190565b80821115613fe957613fe38484613fde8486615097565b6147ab565b50612157565b808210156121575761215584846140008585615097565b612d34565b60008085841161401657600061401a565b8584035b915061402c8261275d8881878a612636565b905094509492505050565b601b546000908190815b81811015610c31576000601b828154811061405e5761405e615068565b6000918252602082200154604080516304af5f7360e31b815290516001600160a01b039092169350839263257afb989260048084019382900301818387803b1580156140a957600080fd5b505af11580156140bd573d6000803e3d6000fd5b50505050614102816001600160a01b031663868a6ecc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b06573d6000803e3d6000fd5b935050600101614041565b900390565b6023546040805163648ca5b560e01b815290516000926001600160a01b0316918391839163648ca5b59160048083019260209291908290030181865afa158015614160573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614184919061507e565b9050858101868511801561419757508086105b1561291c576000806141ab89848a8a614005565b91509150614259601d60009054906101000a90046001600160a01b03168b876001600160a01b031663833e19436040518163ffffffff1660e01b8152600401602060405180830381865afa158015614207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061422b919061507e565b604051631c2d542760e01b81526001600160a01b038a1690631c2d542790612f889089908990600401614c8f565b505092505050949350505050565b6023546040805163a06ec6e560e01b815290516000926001600160a01b0316918391839163a06ec6e59160048083019260209291908290030181865afa1580156142b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142d9919061507e565b905085810186851180156142ec57508086105b1561291c5760008061430089848a8a614005565b91509150614259601d60009054906101000a90046001600160a01b03168b876001600160a01b031663868a6ecc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561435c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614380919061507e565b60405163f50e7e7f60e01b81526001600160a01b038a169063f50e7e7f90612f889089908990600401614c8f565b601d546001600160a01b031661442257602060009054906101000a90046001600160a01b03166001600160a01b031663e4fc6b6d826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561440e57600080fd5b505af1158015611f4a573d6000803e3d6000fd5b601d5460205460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392614458929116908590600401615681565b6020604051808303816000875af1158015614477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061449b9190615046565b50602054601d54604051631f72642160e31b81526001600160a01b039283169263fb932108926144d2929116908590600401615681565b600060405180830381600087803b1580156144ec57600080fd5b505af1158015612155573d6000803e3d6000fd5b8154600019810160005b8281101561215557836001600160a01b031685828154811061452e5761452e615068565b6000918252602090912001546001600160a01b03160361460057805b828110156145c85785600182018154811061456757614567615068565b9060005260206000200160009054906101000a90046001600160a01b031686828154811061459757614597615068565b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905560010161454a565b50848054806145d9576145d9615791565b600082815260209020810160001990810180546001600160a01b0319169055019055612155565b60010161450a565b835160005b81811015611f4a57600086828151811061462957614629615068565b6020026020010151905061466486614650878785602001516125599092919063ffffffff16565b83516001600160a01b031691906001613445565b505060010161460d565b602354604080516341c2df3160e11b815290516000926001600160a01b03169183918391638385be629160048083019260209291908290030181865afa1580156146bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146e0919061507e565b905085810186851180156146f357508086105b1561291c5760008061470789848a8a614005565b91509150614259601f60009054906101000a90046001600160a01b03168b876001600160a01b0316630576ef616040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f36573d6000803e3d6000fd5b8486111561478957614783888861477a888a615097565b878787876149a9565b506131f5565b848610156131f5576147a088886140008989615097565b505050505050505050565b60006001600160a01b0383166147fc5760001982036147d257836001600160a01b03163191505b813410156147f757348260405163d17e444b60e01b8152600401610381929190614c8f565b61499f565b8260018301614875576040516370a0823160e01b81526001600160a01b038216906370a0823190614831908890600401614b89565b602060405180830381865afa15801561484e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614872919061507e565b92505b82600003614887576000915050612617565b604051636eb1769f60e11b81526001600160a01b0386811660048301523060248301526000919083169063dd62ed3e90604401602060405180830381865afa1580156148d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148fb919061507e565b90508381101561492257808460405163d17e444b60e01b8152600401610381929190614c8f565b6040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018690528316906323b872dd906064016020604051808303816000875af1158015614977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061499b9190615046565b5050505b5060019392505050565b60006001600160a01b0387166149fa5760001986036149d057876001600160a01b03163195505b853410156149f557348660405163d17e444b60e01b8152600401610381929190614c8f565b614a97565b8660018701614a73576040516370a0823160e01b81526001600160a01b038216906370a0823190614a2f908c90600401614b89565b602060405180830381865afa158015614a4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a70919061507e565b96505b86600003614a8557600091505061315b565b614a95888a308a8a8a8a8a614aa5565b505b506001979650505050505050565b6040805160a0810182526001600160a01b038a811660608301908152608083018990528252602080830188905282840187905283518085018552918a1682528101889052915163187945bd60e11b81526e22d473030f116ddee9f6b43ac78ba3926330f28b7a92614b21929091908c90889088906004016157a7565b600060405180830381600087803b158015614b3b57600080fd5b505af115801561113d573d6000803e3d6000fd5b604080518082019091526000808252602082015290565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6000815180845260005b81811015614bc357602081850181015186830182015201614ba7565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006126176020830184614b9d565b600081518084526020808501945080840160005b83811015614c2f5781516001600160a01b031687529582019590820190600101614c0a565b509495945050505050565b6020815260006126176020830184614bf6565b6001600160a01b0381168114610b6d57600080fd5b8035614c6d81614c4d565b919050565b600060208284031215614c8457600080fd5b813561261781614c4d565b918252602082015260400190565b6020810160078310614cbf57634e487b7160e01b600052602160045260246000fd5b91905290565b600060208284031215614cd757600080fd5b5035919050565b60008060408385031215614cf157600080fd5b50508035926020909101359150565b80516001600160a01b03168252602090810151910152565b602080825282518282018190526000919060409081850190868401855b82811015614d5857614d48848351614d00565b9284019290850190600101614d35565b5091979650505050505050565b60006020808352835160a082850152614d8160c0850182614b9d565b905081850151601f1980868403016040870152614d9e8383614b9d565b92506040870151915080868403016060870152614dbb8383614b9d565b92506060870151915080868403016080870152614dd88383614b9d565b6080880151878203830160a089015280518083529194508501925084840190600581901b8501860160005b82811015614e2f5784878303018452614e1d828751614b9d565b95880195938801939150600101614e03565b509998505050505050505050565b60008060408385031215614e5057600080fd5b8235614e5b81614c4d565b946020939093013593505050565b60008083601f840112614e7b57600080fd5b5081356001600160401b03811115614e9257600080fd5b60208301915083602082850101111561343e57600080fd5b60008060008060008060a08789031215614ec357600080fd5b8635614ece81614c4d565b955060208701359450604087013593506060870135925060808701356001600160401b03811115614efe57600080fd5b614f0a89828a01614e69565b979a9699509497509295939492505050565b60006101a08284031215614f2f57600080fd5b50919050565b600060a08284031215614f2f57600080fd5b6000806000806000806000806000806000806102e08d8f031215614f6a57600080fd5b6001600160401b038d351115614f7f57600080fd5b614f8c8e8e358f01614e69565b909c509a50614f9e8e60208f01614f1c565b99506001600160401b036101c08e01351115614fb957600080fd5b614fca8e6101c08f01358f01614f35565b98506101e08d013597506102008d01359650614fe96102208e01614c62565b9550614ff86102408e01614c62565b94506150076102608e01614c62565b93506150166102808e01614c62565b92506150256102a08e01614c62565b91506150346102c08e01614c62565b90509295989b509295989b509295989b565b60006020828403121561505857600080fd5b8151801515811461261757600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561509057600080fd5b5051919050565b8181038181111561137e57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600181811c908216806150e257607f821691505b602082108103614f2f57634e487b7160e01b600052602260045260246000fd5b60006020828403121561511457600080fd5b81516007811061261757600080fd5b6040815260006151366040830185614bf6565b828103602084810191909152