1 tx
0 calls
constructor
constructor()
functions
annualFeeUsd
viewfunction annualFeeUsd() view returns (uint256)
DAYS_SCALE
viewfunction DAYS_SCALE() view returns (uint256)
daysPerMonth
viewfunction daysPerMonth() view returns (uint256)
daysPerYear
viewfunction daysPerYear() view returns (uint256)
daysToSeconds
purefunction daysToSeconds(uint256 _days) pure returns (uint256)
DEBITOR_ROLE
viewfunction DEBITOR_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
dynamicPriceContractAddress
viewfunction dynamicPriceContractAddress() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
gracePeriodDays
viewfunction gracePeriodDays() view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
monthlyFeeUsd
viewfunction monthlyFeeUsd() view returns (uint256)
paidUntil
viewfunction paidUntil(address) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
wayfinderFeeChargerContractAddress
viewfunction wayfinderFeeChargerContractAddress() view returns (address)
addDebitor
nonpayablefunction addDebitor(address _debitor)
batchChargeForMonth
nonpayablefunction batchChargeForMonth(address[] _addresses)
batchChargeForYear
nonpayablefunction batchChargeForYear(address[] _addresses)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
removeDebitor
nonpayablefunction removeDebitor(address _debitor)
renounceRole
nonpayablefunction renounceRole(bytes32, address)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAnnualFeeUsd
nonpayablefunction setAnnualFeeUsd(uint256 _annualFeeUsd)
setDaysPerMonth
nonpayablefunction setDaysPerMonth(uint256 _daysPerMonth)
setDaysPerYear
nonpayablefunction setDaysPerYear(uint256 _daysPerYear)
setDynamicPriceContractAddress
nonpayablefunction setDynamicPriceContractAddress(address _newAddress)
setGracePeriodDays
nonpayablefunction setGracePeriodDays(uint256 _gracePeriodDays)
setMonthlyFeeUsd
nonpayablefunction setMonthlyFeeUsd(uint256 _monthlyFeeUsd)
setUserPaidUntil
nonpayablefunction setUserPaidUntil(address _user, uint256 _paidUntilTimestamp)
setWayfinderFeeChargerContractAddress
nonpayablefunction setWayfinderFeeChargerContractAddress(address _newAddress)
events
AnnualFeeUsdChanged
event AnnualFeeUsdChanged(uint256 oldFee, uint256 newFee)
BatchChargedForMonth
event BatchChargedForMonth(address[] addresses, uint256 feeUsd, uint256 feePrompt, uint256 daysPerMonth)
BatchChargedForYear
event BatchChargedForYear(address[] addresses, uint256 feeUsd, uint256 feePrompt, uint256 daysPerYear)
DaysPerMonthChanged
event DaysPerMonthChanged(uint256 oldDays, uint256 newDays)
DaysPerYearChanged
event DaysPerYearChanged(uint256 oldDays, uint256 newDays)
DebitorAdded
event DebitorAdded(address indexed admin, address indexed newDebitor)
DebitorRemoved
event DebitorRemoved(address indexed admin, address indexed oldDebitor)
DynamicPriceContractAddressChanged
event DynamicPriceContractAddressChanged(address indexed oldAddress, address indexed newAddress)
GracePeriodDaysChanged
event GracePeriodDaysChanged(uint256 oldDays, uint256 newDays)
MonthlyFeeUsdChanged
event MonthlyFeeUsdChanged(uint256 oldFee, uint256 newFee)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
UserPaidUntilSet
event UserPaidUntilSet(address indexed admin, address indexed user, uint256 paidUntilTimestamp)
WayfinderFeeChargerContractAddressChanged
event WayfinderFeeChargerContractAddressChanged(address indexed oldAddress, address indexed newAddress)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
creation bytecode
0x60806040526002600155601460025561012c600355610e42600455600360055534801561002b57600080fd5b5061003f6000801b3361007660201b60201c565b506100707f3292c97fa532f7ec8c1f875724f26d643134636bcb37a79b9129bcfe707417373361007660201b60201c565b506101e5565b6000610088838361017360201b60201c565b61016857600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506101056101dd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061016d565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b612522806101f46000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806372e46a2111610104578063c09de95f116100a2578063d547741f11610071578063d547741f1461052b578063d94c6dfb14610547578063dbc39c5514610563578063e9e56ff614610581576101da565b8063c09de95f146104b9578063c6a3f732146104d5578063cab535d4146104f1578063d07298a31461050f576101da565b806391d14854116100de57806391d148541461041d5780639200a5b51461044d57806392cff5fe1461046b578063a217fddf1461049b576101da565b806372e46a21146103c75780638d4bc9e6146103e35780638efd4e00146103ff576101da565b8063277fc17d1161017c5780633e93729d1161014b5780633e93729d1461035557806345d941ff146103715780634ac75d2c1461038f578063724b6a43146103ab576101da565b8063277fc17d146102d15780632f2ff15d14610301578063311e96311461031d57806336568abe14610339576101da565b80631348ed5e116101b85780631348ed5e1461024957806322e68cc714610267578063248a9ca314610285578063273edf8a146102b5576101da565b806301ffc9a7146101df5780630ce6b4191461020f57806310b08ec41461022b575b600080fd5b6101f960048036038101906101f4919061193e565b61059f565b6040516102069190611986565b60405180910390f35b610229600480360381019061022491906119d7565b610619565b005b610233610672565b6040516102409190611a1d565b60405180910390f35b610251610696565b60405161025e9190611a47565b60405180910390f35b61026f61069c565b60405161027c9190611a47565b60405180910390f35b61029f600480360381019061029a9190611a8e565b6106a1565b6040516102ac9190611a1d565b60405180910390f35b6102cf60048036038101906102ca9190611b19565b6106c0565b005b6102eb60048036038101906102e691906119d7565b610755565b6040516102f89190611a47565b60405180910390f35b61031b60048036038101906103169190611b46565b610779565b005b61033760048036038101906103329190611b19565b61079b565b005b610353600480360381019061034e9190611b46565b610830565b005b61036f600480360381019061036a91906119d7565b61086b565b005b6103796108c4565b6040516103869190611b95565b60405180910390f35b6103a960048036038101906103a49190611b19565b6108ea565b005b6103c560048036038101906103c091906119d7565b610a2d565b005b6103e160048036038101906103dc91906119d7565b610a86565b005b6103fd60048036038101906103f89190611c15565b610adf565b005b610407610b21565b6040516104149190611a47565b60405180910390f35b61043760048036038101906104329190611b46565b610b27565b6040516104449190611986565b60405180910390f35b610455610b91565b6040516104629190611b95565b60405180910390f35b61048560048036038101906104809190611b19565b610bb7565b6040516104929190611a47565b60405180910390f35b6104a3610bcf565b6040516104b09190611a1d565b60405180910390f35b6104d360048036038101906104ce9190611c62565b610bd6565b005b6104ef60048036038101906104ea91906119d7565b610d00565b005b6104f9610d59565b6040516105069190611a47565b60405180910390f35b61052960048036038101906105249190611b19565b610d5f565b005b61054560048036038101906105409190611b46565b610ea2565b005b610561600480360381019061055c9190611c15565b610f39565b005b61056b610f7b565b6040516105789190611a47565b60405180910390f35b610589610f81565b6040516105969190611a47565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610612575061061182610f87565b5b9050919050565b6000801b61062681610ff1565b60006005549050826005819055507fdceea604ea31db3991bbac550dceb9103dc0645b606f36bb0aff3a3f100963008184604051610665929190611ca2565b60405180910390a1505050565b7f3292c97fa532f7ec8c1f875724f26d643134636bcb37a79b9129bcfe7074173781565b60055481565b600a81565b6000806000838152602001908152602001600020600101549050919050565b6000801b6106cd81610ff1565b6106f77f3292c97fa532f7ec8c1f875724f26d643134636bcb37a79b9129bcfe7074173783610ea2565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb6e906bcb6e9dab1e32e53cdda91caa730aac74cde74fb53cee665cb5084512860405160405180910390a35050565b6000600a62015180836107689190611cfa565b6107729190611d6b565b9050919050565b610782826106a1565b61078b81610ff1565b6107958383611005565b50505050565b6000801b6107a881610ff1565b6107d27f3292c97fa532f7ec8c1f875724f26d643134636bcb37a79b9129bcfe7074173783610779565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2d0f0e1b35bff9d9ef9d5bf3a14b2678b5626856a507ff6b20f7f9ed96cd491760405160405180910390a35050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290611df9565b60405180910390fd5b6000801b61087881610ff1565b60006003549050826003819055507f0db287c6e22c92d885d7fe021abcb3edbc491e34578c2eb9d1f6d9ac158959b581846040516108b7929190611ca2565b60405180910390a1505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b6108f781610ff1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095d90611e8b565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f7ac0cf0ee6db4cb999fd8b5114b050a1d5c4788e405f621fec22143fe245361b60405160405180910390a3505050565b6000801b610a3a81610ff1565b60006001549050826001819055507ff0f2867285483336682d57b8f92cd19dbf190458b523a88370eec73552ef2de58184604051610a79929190611ca2565b60405180910390a1505050565b6000801b610a9381610ff1565b60006004549050826004819055507f2bad502f6ec6c78e4105e8bf6d1617075efa66288f4538049ad9d4328f9420508184604051610ad2929190611ca2565b60405180910390a1505050565b7f3292c97fa532f7ec8c1f875724f26d643134636bcb37a79b9129bcfe70741737610b0981610ff1565b610b1b838360045460025460006110f6565b50505050565b60045481565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915090505481565b6000801b81565b6000801b610be381610ff1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990611e8b565b60405180910390fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe0768de7fcef42115463d84e15f6bbf7d566a084e48e91a808d0c361f7003a2784604051610cf39190611a47565b60405180910390a3505050565b6000801b610d0d81610ff1565b60006002549050826002819055507f3e32f055b9f866b0eb26c00f01b99c90bb5c8c9e3a982dd7b5cac1597ceda7408184604051610d4c929190611ca2565b60405180910390a1505050565b60035481565b6000801b610d6c81610ff1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd290611e8b565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f0f07542491c4fa4e767a0d68ed0ee6cecd477d14b12fa48f10e2f8ff9737ce6160405160405180910390a3505050565b610eab826106a1565b610eb481610ff1565b610ebc611791565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2090611ef7565b60405180910390fd5b610f338383611799565b50505050565b7f3292c97fa532f7ec8c1f875724f26d643134636bcb37a79b9129bcfe70741737610f6381610ff1565b610f75838360035460015460016110f6565b50505050565b60015481565b60025481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61100281610ffd611791565b61188b565b50565b60006110118383610b27565b6110eb57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611088611791565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506110f0565b600090505b92915050565b600080868690501161113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490611f89565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c59061201b565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638a4e18e2856040518263ffffffff1660e01b815260040161122b9190611a47565b602060405180830381865afa158015611248573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126c9190612050565b905060008787905067ffffffffffffffff81111561128d5761128c61207d565b5b6040519080825280602002602001820160405280156112bb5781602001602082028036833780820191505090505b50905060005b888890508110156115975760008989838181106112e1576112e06120ac565b5b90506020020160208101906112f69190611b19565b905042600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561137a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113719061214d565b60405180910390fd5b600061138589610755565b90506000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036114225780426113da919061216d565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611568565b620151806005546114339190611cfa565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461147d919061216d565b4211156114d8578042611490919061216d565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611567565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611523919061216d565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b8484848151811061157c5761157b6120ac565b5b602002602001018181525050505080806001019150506112c1565b506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168989846040516024016115e893929190612322565b6040516020818303038152906040527ff7357af0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161167291906123cc565b6000604051808303816000865af19150503d80600081146116af576040519150601f19603f3d011682016040523d82523d6000602084013e6116b4565b606091505b50509050806116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef90612455565b60405180910390fd5b8415611742577f24c4f660c59c66701b289004593deade157d0a36646ab6d495751854d1e55267898988868b604051611735959493929190612475565b60405180910390a1611782565b7f3a1b9e8b1683754ec462206a8f9f674fd807f9aeb067e5b87fc86b332bf6eef6898988868b604051611779959493929190612475565b60405180910390a15b80935050505095945050505050565b600033905090565b60006117a58383610b27565b1561188057600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061181d611791565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611885565b600090505b92915050565b6118958282610b27565b6118d85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016118cf9291906124c3565b60405180910390fd5b5050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61191b816118e6565b811461192657600080fd5b50565b60008135905061193881611912565b92915050565b600060208284031215611954576119536118dc565b5b600061196284828501611929565b91505092915050565b60008115159050919050565b6119808161196b565b82525050565b600060208201905061199b6000830184611977565b92915050565b6000819050919050565b6119b4816119a1565b81146119bf57600080fd5b50565b6000813590506119d1816119ab565b92915050565b6000602082840312156119ed576119ec6118dc565b5b60006119fb848285016119c2565b91505092915050565b6000819050919050565b611a1781611a04565b82525050565b6000602082019050611a326000830184611a0e565b92915050565b611a41816119a1565b82525050565b6000602082019050611a5c6000830184611a38565b92915050565b611a6b81611a04565b8114611a7657600080fd5b50565b600081359050611a8881611a62565b92915050565b600060208284031215611aa457611aa36118dc565b5b6000611ab284828501611a79565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ae682611abb565b9050919050565b611af681611adb565b8114611b0157600080fd5b50565b600081359050611b1381611aed565b92915050565b600060208284031215611b2f57611b2e6118dc565b5b6000611b3d84828501611b04565b91505092915050565b60008060408385031215611b5d57611b5c6118dc565b5b6000611b6b85828601611a79565b9250506020611b7c85828601611b04565b9150509250929050565b611b8f81611adb565b82525050565b6000602082019050611baa6000830184611b86565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611bd557611bd4611bb0565b5b8235905067ffffffffffffffff811115611bf257611bf1611bb5565b5b602083019150836020820283011115611c0e57611c0d611bba565b5b9250929050565b60008060208385031215611c2c57611c2b6118dc565b5b600083013567ffffffffffffffff811115611c4a57611c496118e1565b5b611c5685828601611bbf565b92509250509250929050565b60008060408385031215611c7957611c786118dc565b5b6000611c8785828601611b04565b9250506020611c98858286016119c2565b9150509250929050565b6000604082019050611cb76000830185611a38565b611cc46020830184611a38565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d05826119a1565b9150611d10836119a1565b9250828202611d1e816119a1565b91508282048414831517611d3557611d34611ccb565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611d76826119a1565b9150611d81836119a1565b925082611d9157611d90611d3c565b5b828204905092915050565b600082825260208201905092915050565b7f43616e6e6f742072656e6f756e636520726f6c65000000000000000000000000600082015250565b6000611de3601483611d9c565b9150611dee82611dad565b602082019050919050565b60006020820190508181036000830152611e1281611dd6565b9050919050565b7f537562736372697074696f6e4d616e616765723a207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e75602183611d9c565b9150611e8082611e19565b604082019050919050565b60006020820190508181036000830152611ea481611e68565b9050919050565b7f43616e6e6f74207265766f6b6520726f6c652066726f6d2073656c6600000000600082015250565b6000611ee1601c83611d9c565b9150611eec82611eab565b602082019050919050565b60006020820190508181036000830152611f1081611ed4565b9050919050565b7f537562736372697074696f6e4d616e616765723a20656d70747920616464726560008201527f7373206c69737400000000000000000000000000000000000000000000000000602082015250565b6000611f73602783611d9c565b9150611f7e82611f17565b604082019050919050565b60006020820190508181036000830152611fa281611f66565b9050919050565b7f537562736372697074696f6e4d616e616765723a2064796e616d69632070726960008201527f636520636f6e7472616374206e6f742073657400000000000000000000000000602082015250565b6000612005603383611d9c565b915061201082611fa9565b604082019050919050565b6000602082019050818103600083015261203481611ff8565b9050919050565b60008151905061204a816119ab565b92915050565b600060208284031215612066576120656118dc565b5b60006120748482850161203b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f537562736372697074696f6e4d616e616765723a207573657220697320616c7260008201527f6561647920706169642075700000000000000000000000000000000000000000602082015250565b6000612137602c83611d9c565b9150612142826120db565b604082019050919050565b600060208201905081810360008301526121668161212a565b9050919050565b6000612178826119a1565b9150612183836119a1565b925082820190508082111561219b5761219a611ccb565b5b92915050565b600082825260208201905092915050565b6000819050919050565b6121c581611adb565b82525050565b60006121d783836121bc565b60208301905092915050565b60006121f26020840184611b04565b905092915050565b6000602082019050919050565b600061221383856121a1565b935061221e826121b2565b8060005b858110156122575761223482846121e3565b61223e88826121cb565b9750612249836121fa565b925050600181019050612222565b5085925050509392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612299816119a1565b82525050565b60006122ab8383612290565b60208301905092915050565b6000602082019050919050565b60006122cf82612264565b6122d9818561226f565b93506122e483612280565b8060005b838110156123155781516122fc888261229f565b9750612307836122b7565b9250506001810190506122e8565b5085935050505092915050565b6000604082019050818103600083015261233d818587612207565b9050818103602083015261235181846122c4565b9050949350505050565b600081519050919050565b600081905092915050565b60005b8381101561238f578082015181840152602081019050612374565b60008484015250505050565b60006123a68261235b565b6123b08185612366565b93506123c0818560208601612371565b80840191505092915050565b60006123d8828461239b565b915081905092915050565b7f537562736372697074696f6e4d616e616765723a20626174636844656269742060008201527f63616c6c206661696c6564000000000000000000000000000000000000000000602082015250565b600061243f602b83611d9c565b915061244a826123e3565b604082019050919050565b6000602082019050818103600083015261246e81612432565b9050919050565b60006080820190508181036000830152612490818789612207565b905061249f6020830186611a38565b6124ac6040830185611a38565b6124b96060830184611a38565b9695505050505050565b60006040820190506124d86000830185611b86565b6124e56020830184611a0e565b939250505056fea2646970667358221220a80f446effed6f309c07796d8956adb8e02a153ecff5e020ad971750b456a78f64736f6c634300081c0033