0 txs
0 calls
constructor
constructor((address veFxs, address _fraxGovernorAlpha, uint256 initialVotingDelay, uint256 initialVotingPeriod, uint256 initialQuorum, uint256 initialSafeRequiredSignatures, uint256 initialShortCircuitThreshold) params)
functions
BALLOT_TYPEHASH
viewfunction BALLOT_TYPEHASH() view returns (bytes32)
CLOCK_MODE
purefunction CLOCK_MODE() pure returns (string)
clock
viewfunction clock() view returns (uint48)
COUNTING_MODE
purefunction COUNTING_MODE() pure returns (string)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
EXTENDED_BALLOT_TYPEHASH
viewfunction EXTENDED_BALLOT_TYPEHASH() view returns (bytes32)
FRAX_GOVERNOR_ALPHA
viewfunction FRAX_GOVERNOR_ALPHA() view returns (address)
getVotes
viewfunction getVotes(address account, uint256 timepoint) view returns (uint256)
getVotesWithParams
viewfunction getVotesWithParams(address account, uint256 timepoint, bytes params) view returns (uint256)
gnosisSafeToNonceToHash
viewfunction gnosisSafeToNonceToHash(address, uint256) view returns (bytes32)
hashProposal
purefunction hashProposal(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) pure returns (uint256)
hashToVetoProposalId
viewfunction hashToVetoProposalId(bytes32) view returns (uint256)
hasVoted
viewfunction hasVoted(uint256 proposalId, address account) view returns (bool)
name
viewfunction name() view returns (string)
proposalDeadline
viewfunction proposalDeadline(uint256 proposalId) view returns (uint256)
proposals
viewfunction proposals(uint256) view returns (uint64 voteStart, address proposer, bytes4 __gap_unused0, uint64 voteEnd, bytes24 __gap_unused1, bool executed, bool canceled)
proposalSnapshot
viewfunction proposalSnapshot(uint256 proposalId) view returns (uint256)
proposalThreshold
viewfunction proposalThreshold() view returns (uint256)
proposalVotes
viewfunction proposalVotes(uint256 proposalId) view returns (uint256 againstVotes, uint256 forVotes, uint256 abstainVotes)
QUORUM_DENOMINATOR
viewfunction QUORUM_DENOMINATOR() view returns (uint256)
quorum
viewfunction quorum(uint256 timepoint) view returns (uint256)
quorumNumerator
viewfunction quorumNumerator() view returns (uint256)
safeRequiredSignatures
viewfunction safeRequiredSignatures() view returns (uint256)
setProposalThreshold
purefunction setProposalThreshold(uint256) pure
shortCircuitThreshold
viewfunction shortCircuitThreshold() view returns (uint256)
state
viewfunction state(uint256 proposalId) view returns (uint8)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
VE_FXS
viewfunction VE_FXS() view returns (address)
version
viewfunction version() view returns (string)
vetoProposalIdToTxHash
viewfunction vetoProposalIdToTxHash(uint256) view returns (bytes32)
voteWeightCast
viewfunction voteWeightCast(uint256 proposalId, address account) view returns (uint128)
votingDelay
viewfunction votingDelay() view returns (uint256)
votingPeriod
viewfunction votingPeriod() view returns (uint256)
abortTransaction
nonpayablefunction abortTransaction(address teamSafe, bytes signatures)
addTransaction
nonpayablefunction addTransaction(address teamSafe, tuple args, bytes signatures) returns (uint256 vetoProposalId)
approveTransaction
nonpayablefunction approveTransaction(address teamSafe, uint256 nonce)
cancel
nonpayablefunction cancel(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) returns (uint256)
castVote
nonpayablefunction castVote(uint256 proposalId, uint8 support) returns (uint256)
castVoteBySig
nonpayablefunction castVoteBySig(uint256 proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) returns (uint256)
castVoteWithReason
nonpayablefunction castVoteWithReason(uint256 proposalId, uint8 support, string reason) returns (uint256)
castVoteWithReasonAndParams
nonpayablefunction castVoteWithReasonAndParams(uint256 proposalId, uint8 support, string reason, bytes params) returns (uint256)
castVoteWithReasonAndParamsBySig
nonpayablefunction castVoteWithReasonAndParamsBySig(uint256 proposalId, uint8 support, string reason, bytes params, uint8 v, bytes32 r, bytes32 s) returns (uint256)
execute
payablefunction execute(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) payable returns (uint256)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address, uint256, uint256, bytes) returns (bytes4)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
propose
nonpayablefunction propose(address[] targets, uint256[] values, bytes[] calldatas, string description) returns (uint256)
rejectTransaction
nonpayablefunction rejectTransaction(address teamSafe, uint256 nonce)
relay
payablefunction relay(address target, uint256 value, bytes data) payable
setSafeRequiredSignatures
nonpayablefunction setSafeRequiredSignatures(uint256 newRequiredSignatures)
setShortCircuitThreshold
nonpayablefunction setShortCircuitThreshold(uint256 _shortCircuitThreshold)
setVotingDelay
nonpayablefunction setVotingDelay(uint256 newVotingDelay)
setVotingPeriod
nonpayablefunction setVotingPeriod(uint256 newVotingPeriod)
setVotingQuorum
nonpayablefunction setVotingQuorum(uint256 _votingQuorum)
events
EIP712DomainChanged
event EIP712DomainChanged()
ProposalCanceled
event ProposalCanceled(uint256 proposalId)
ProposalCreated
event ProposalCreated(uint256 proposalId, address proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 voteStart, uint256 voteEnd, string description)
ProposalExecuted
event ProposalExecuted(uint256 proposalId)
ProposalThresholdSet
event ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold)
QuorumSet
event QuorumSet(uint256 oldQuorum, uint256 newQuorum)
SafeRegistered
event SafeRegistered(address safe)
SafeRequiredSignaturesSet
event SafeRequiredSignaturesSet(uint256 oldRequiredSignatures, uint256 newRequiredSignatures)
SafeUnregistered
event SafeUnregistered(address safe)
ShortCircuitThresholdSet
event ShortCircuitThresholdSet(uint256 oldShortCircuitThreshold, uint256 newShortCircuitThreshold)
TransactionAborted
event TransactionAborted(uint256 proposalId, bytes32 rejectedHash)
TransactionApproved
event TransactionApproved(address indexed safe, bytes32 approvedTxHash)
TransactionProposed
event TransactionProposed(uint256 proposalId, address indexed proposer, bytes32 txHash)
VoteCast
event VoteCast(address indexed voter, uint256 proposalId, uint8 support, uint256 weight, string reason)
VoteCastWithParams
event VoteCastWithParams(address indexed voter, uint256 proposalId, uint8 support, uint256 weight, string reason, bytes params)
VotingDelaySet
event VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay)
VotingPeriodSet
event VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod)
errors
CannotCancelVetoTransaction
error CannotCancelVetoTransaction()
DisallowedTarget
error DisallowedTarget(address target)
Empty
error Empty()
InvalidShortString
error InvalidShortString()
NonceReserved
error NonceReserved()
NotGovernorAlpha
error NotGovernorAlpha()
OnlyVeFxs
error OnlyVeFxs()
StringTooLong
error StringTooLong(string str)
TransactionAlreadyApproved
error TransactionAlreadyApproved(bytes32 txHash)
Unauthorized
error Unauthorized()
WrongNonce
error WrongNonce()
WrongProposalState
error WrongProposalState()
creation bytecode
0x6101a06040523480156200001257600080fd5b50604051620053eb380380620053eb8339810160408190526200003591620003d1565b6040805160c0808201835283516001600160a01b0316825282518084018452601181527046726178476f7665726e6f724f6d65676160781b602082810191909152830181905284840151938301849052606080860151908401819052608080870151908501529185015160a08401529192906000838383838380620000ce6040805180820190915260018152603160f81b602082015290565b620000db826000620001f9565b60e052620000eb816001620001f9565b61010052815160208084019190912061012052815190820120610140524660a0526200017b6101205161014051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526002620001928282620004f7565b50620001a090508362000232565b620001ab8262000273565b620001b6816200031a565b505086516001600160a01b03908116610160526080880151600b5560a097880151600c5560208901511661018052505050509290910151600d5550620006389050565b6000602083511015620002195762000211836200035b565b90506200022c565b81620002268482620004f7565b5060ff90505b92915050565b60065460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600655565b60008111620002d95760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b60075460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600755565b60085460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600855565b600080829050601f8151111562000389578260405163305a27a960e01b8152600401620002d09190620005c3565b8051620003968262000613565b179392505050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620003cc57600080fd5b919050565b600060e08284031215620003e457600080fd5b60405160e081016001600160401b03811182821017156200040957620004096200039e565b6040526200041783620003b4565b81526200042760208401620003b4565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c08201528091505092915050565b600181811c908216806200047d57607f821691505b6020821081036200049e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f257600081815260208120601f850160051c81016020861015620004cd5750805b601f850160051c820191505b81811015620004ee57828155600101620004d9565b5050505b505050565b81516001600160401b038111156200051357620005136200039e565b6200052b8162000524845462000468565b84620004a4565b602080601f8311600181146200056357600084156200054a5750858301515b600019600386901b1c1916600185901b178555620004ee565b600085815260208120601f198616915b82811015620005945788860151825594840194600190910190840162000573565b5085821015620005b35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b81811015620005f257858101830151858201604001528201620005d4565b506000604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200049e5760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516101605161018051614d03620006e8600039600081816108e3015281816116f8015281816121f7015281816128c001528181612dc60152612e5201526000818161073001528181611fcd0152818161245301528181612530015261295f0152600061318d01526000613165015260006117e6015260006117bc015260006130c0015260006130ea015260006131140152614d036000f3fe6080604052600436106103395760003560e01c80636fef541a116101ab578063bc197c81116100f7578063deaaa7cc11610095578063ece40cc11161006f578063ece40cc114610baa578063f23a6e6114610bca578063f8ce560a14610bf6578063fd5e172414610c1657600080fd5b8063deaaa7cc14610b36578063ea0217cf14610b6a578063eb9019d414610b8a57600080fd5b8063c57bee4c116100d1578063c57bee4c14610aa9578063c59057e414610ae1578063c617c20c14610b01578063dd4e2ba514610b2157600080fd5b8063bc197c8114610a31578063c01f9e3714610a5d578063c28bc2fa14610a9657600080fd5b806391ddadf411610164578063a7713a701161013e578063a7713a70146109c6578063b021d2c3146109dc578063b12c3277146109fc578063b58131b014610a1c57600080fd5b806391ddadf41461096d578063974f426f146109905780639a802a6d146109a657600080fd5b80636fef541a1461089c57806370b0f660146108b1578063743e481a146108d15780637b3c71d3146109055780637d5e81e21461092557806384b0196e1461094557600080fd5b80633bccf4fd1161028557806354fd4d50116102235780635c085589116101fd5780635c0855891461080f5780635f398a141461082f57806365410ff91461084f57806365decc0b1461087c57600080fd5b806354fd4d50146107a557806356781388146107cf5780635ab691ab146107ef57600080fd5b8063452115d61161025f578063452115d6146106c75780634bf5d7e9146106e7578063506d1f811461071e578063544ffc9c1461076a57600080fd5b80633bccf4fd1461062c5780633e4f49e61461064c578063438596321461067957600080fd5b80631e46cd34116102f25780632d63f693116102cc5780632d63f693146105495780632fe3e2611461057f578063342cfab6146105b35780633932abb11461061757600080fd5b80631e46cd341461050057806322d5ebeb146105205780632656227d1461053657600080fd5b8063013cf08b1461034757806301ffc9a71461042b57806302a251a31461045b578063034201811461047a57806306fdde031461049a578063150b7a02146104bc57600080fd5b3661034257005b005b600080fd5b34801561035357600080fd5b506103c1610362366004613bd4565b60036020526000908152604090819020805460018201546002909201546001600160401b0380831694600160401b8085046001600160a01b031695600160e01b90950460e01b94928316939204901b9060ff8082169161010090041687565b604080516001600160401b0398891681526001600160a01b0390971660208801526001600160e01b03199095169486019490945294909116606084015267ffffffffffffffff1916608083015291151560a082015290151560c082015260e0015b60405180910390f35b34801561043757600080fd5b5061044b610446366004613bed565b610c43565b6040519015158152602001610422565b34801561046757600080fd5b506007545b604051908152602001610422565b34801561048657600080fd5b5061046c610495366004613d32565b610cb0565b3480156104a657600080fd5b506104af610da8565b6040516104229190613e28565b3480156104c857600080fd5b506104e76104d7366004613e52565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610422565b34801561050c57600080fd5b5061034061051b366004613bd4565b610e3a565b34801561052c57600080fd5b5061046c600d5481565b61046c610544366004614028565b610e88565b34801561055557600080fd5b5061046c610564366004613bd4565b6000908152600360205260409020546001600160401b031690565b34801561058b57600080fd5b5061046c7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156105bf57600080fd5b506105ff6105ce3660046140b7565b6000918252600a602090815260408084206001600160a01b039390931684529190529020546001600160801b031690565b6040516001600160801b039091168152602001610422565b34801561062357600080fd5b5060065461046c565b34801561063857600080fd5b5061046c6106473660046140e3565b610fb9565b34801561065857600080fd5b5061066c610667366004613bd4565b61102f565b6040516104229190614147565b34801561068557600080fd5b5061044b6106943660046140b7565b6000918252600a602090815260408084206001600160a01b039390931684529190529020546001600160801b0316151590565b3480156106d357600080fd5b5061046c6106e2366004614028565b6111b1565b3480156106f357600080fd5b5060408051808201909152600e81526d06d6f64653d74696d657374616d760941b60208201526104af565b34801561072a57600080fd5b506107527f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610422565b34801561077657600080fd5b5061078a610785366004613bd4565b611207565b60408051938452602084019290925290820152606001610422565b3480156107b157600080fd5b506040805180820190915260018152603160f81b60208201526104af565b3480156107db57600080fd5b5061046c6107ea366004614161565b611239565b3480156107fb57600080fd5b5061034061080a366004613bd4565b611262565b34801561081b57600080fd5b5061034061082a366004614184565b611276565b34801561083b57600080fd5b5061046c61084a3660046141ae565b6113ff565b34801561085b57600080fd5b5061046c61086a366004613bd4565b600e6020526000908152604090205481565b34801561088857600080fd5b50610340610897366004614184565b611449565b3480156108a857600080fd5b5061046c606481565b3480156108bd57600080fd5b506103406108cc366004613bd4565b611626565b3480156108dd57600080fd5b506107527f000000000000000000000000000000000000000000000000000000000000000081565b34801561091157600080fd5b5061046c610920366004614231565b611637565b34801561093157600080fd5b5061046c61094036600461428a565b611689565b34801561095157600080fd5b5061095a6117ae565b6040516104229796959493929190614379565b34801561097957600080fd5b5060405165ffffffffffff42168152602001610422565b34801561099c57600080fd5b5061046c600c5481565b3480156109b257600080fd5b5061046c6109c13660046143db565b611836565b3480156109d257600080fd5b5061046c600b5481565b3480156109e857600080fd5b5061046c6109f7366004614431565b61184d565b348015610a0857600080fd5b50610340610a173660046144a4565b611ae3565b348015610a2857600080fd5b5060085461046c565b348015610a3d57600080fd5b506104e7610a4c3660046144f6565b63bc197c8160e01b95945050505050565b348015610a6957600080fd5b5061046c610a78366004613bd4565b6000908152600360205260409020600101546001600160401b031690565b610340610aa4366004614585565b611dff565b348015610ab557600080fd5b5061046c610ac4366004614184565b601060209081526000928352604080842090915290825290205481565b348015610aed57600080fd5b5061046c610afc366004614028565b611ef1565b348015610b0d57600080fd5b50610340610b1c366004613bd4565b611f2b565b348015610b2d57600080fd5b506104af611f3c565b348015610b4257600080fd5b5061046c7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610b7657600080fd5b50610340610b85366004613bd4565b611f5c565b348015610b9657600080fd5b5061046c610ba5366004614184565b611f6d565b348015610bb657600080fd5b50610340610bc5366004613bd4565b611f8e565b348015610bd657600080fd5b506104e7610be53660046145c6565b63f23a6e6160e01b95945050505050565b348015610c0257600080fd5b5061046c610c11366004613bd4565b611fa6565b348015610c2257600080fd5b5061046c610c31366004613bd4565b600f6020526000908152604090205481565b60006001600160e01b0319821663bf26d89760e01b1480610c7457506001600160e01b031982166379dd796f60e01b145b80610c8f57506001600160e01b03198216630271189760e51b145b80610caa57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080610d54610d4c7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610cec92919061462a565b60405180910390208b80519060200120604051602001610d31959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b6040516020818303038152906040528051906020012061204c565b868686612079565b9050610d9a8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d9250612097915050565b9a9950505050505050505050565b606060028054610db79061463a565b80601f0160208091040260200160405190810160405280929190818152602001828054610de39061463a565b8015610e305780601f10610e0557610100808354040283529160200191610e30565b820191906000526020600020905b815481529060010190602001808311610e1357829003601f168201915b5050505050905090565b610e426121ec565b600d80549082905560408051828152602081018490527fb118d1293438eec1ee319ab8301192555865b28a68c47046cd9ecee501a4586091015b60405180910390a15050565b600080610e9786868686611ef1565b90506000610ea48261102f565b90506004816007811115610eba57610eba614131565b1480610ed757506005816007811115610ed557610ed5614131565b145b610f325760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084015b60405180910390fd5b60008281526003602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90610f809084815260200190565b60405180910390a1610f958288888888612237565b610fa282888888886122c4565b610faf8288888888612237565b5095945050505050565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff85166060820152600090819061100790610d4c90608001610d31565b9050611024878288604051806020016040528060008152506123ba565b979650505050505050565b6000818152600360205260408120600281015460ff16156110535750600792915050565b6002810154610100900460ff161561106e5750600292915050565b6000838152600360205260408120546001600160401b0316908190036110d65760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610f29565b65ffffffffffff42168082106110f157506000949350505050565b6110fa856123dd565b15611131576111088561243c565b1561111857506004949350505050565b61112185612519565b1561113157506003949350505050565b6000858152600360205260409020600101546001600160401b031681811061115f5750600195945050505050565b611168866123dd565b801561119457506000868152600960205260409020546001600160801b03808216600160801b90920416115b156111a55750600495945050505050565b50600395945050505050565b6000600f60006111c387878787611ef1565b8152602081019190915260400160002054156111f25760405163bca9ec3960e01b815260040160405180910390fd5b6111fe8585858561257c565b95945050505050565b600090815260096020526040902080546001909101546001600160801b0380831693600160801b909304811692911690565b60008033905061125a848285604051806020016040528060008152506123ba565b949350505050565b61126a6121ec565b61127381612683565b50565b3330146112c05760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b6044820152606401610f29565b6112d7565b806112d060046126c1565b036112c557505b604051631b1a23ef60e31b815282906000906001600160a01b0383169063d8d11f789061131890859085908190819081908190819081908e90600401614688565b602060405180830381865afa158015611335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135991906146f8565b60405163d4d9bdcd60e01b8152600481018290529091506001600160a01b0383169063d4d9bdcd90602401600060405180830381600087803b15801561139e57600080fd5b505af11580156113b2573d6000803e3d6000fd5b50505050816001600160a01b03167f7115b98931e7aca6d0aa11d10fe28877316a661a44c4bfc93c76b19dbbf5b107826040516113f191815260200190565b60405180910390a250505050565b60008033905061102487828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250612097915050565b60008060006114588585612737565b6040805160208101909152600090819052929550909350915061149d8484847fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470611ef1565b905060036114aa8261102f565b60078111156114bb576114bb614131565b146114d957604051630fd1155b60e41b815260040160405180910390fd5b6000818152600f602052604090819020549051631f60ca5d60e21b81523060048201526024810182905287906001600160a01b03821690637d832974906044016020604051808303816000875af1158015611538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155c91906146f8565b60010361157f57604051635c0abc6d60e11b815260048101839052602401610f29565b60405163d4d9bdcd60e01b8152600481018390526001600160a01b0382169063d4d9bdcd90602401600060405180830381600087803b1580156115c157600080fd5b505af11580156115d5573d6000803e3d6000fd5b50505050806001600160a01b03167f7115b98931e7aca6d0aa11d10fe28877316a661a44c4bfc93c76b19dbbf5b1078360405161161491815260200190565b60405180910390a25050505050505050565b61162e6121ec565b6112738161287d565b60008033905061167f86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123ba92505050565b9695505050505050565b6000611694336128be565b60005b85518110156117a15760008682815181106116b4576116b4614711565b60200260200101519050306001600160a01b0316816001600160a01b03161480611767575060405163b52ef0e760e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063b52ef0e790602401602060405180830381865afa15801561173f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176391906146f8565b6001145b156117905760405163794e51f360e01b81526001600160a01b0382166004820152602401610f29565b5061179a8161473d565b9050611697565b506111fe858585856129e9565b6000606080828080836117e17f000000000000000000000000000000000000000000000000000000000000000083612cf2565b61180c7f00000000000000000000000000000000000000000000000000000000000000006001612cf2565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000611843848484612d9d565b90505b9392505050565b6000843061185e6020870187614756565b6001600160a01b0316148061189057506001600160a01b0381166118856020870187614756565b6001600160a01b0316145b156118c7576118a26020860186614756565b60405163794e51f360e01b81526001600160a01b039091166004820152602401610f29565b6118d081612e33565b6001600160a01b038116600090815260106020908152604080832061012089013584529091529020541561191757604051639e01d15b60e01b815260040160405180910390fd5b806001600160a01b031663affed0e06040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197b91906146f8565b85610120013510156119a05760405163d9c6386f60e01b815260040160405180910390fd5b60006119ac8287612edc565b90506001600160a01b0382166312fb68e0826119cb60408a018a614771565b8989600d546040518763ffffffff1660e01b81526004016119f1969594939291906147e0565b60006040518083038186803b158015611a0957600080fd5b505afa158015611a1d573d6000803e3d6000fd5b505050506000806000611a35858a6101200135612737565b925092509250611a56838383604051806020016040528060008152506129e9565b6000858152600e60209081526040808320849055838352600f82528083208890556001600160a01b0389168352601082528083206101208e01358452825291829020879055815183815290810187905291975033917f9cdf6ea886c6100c4f5d216680f25718501fcdffdf87f9a6c7632efaaf96bbb0910160405180910390a25050505050949350505050565b82611aed81612e33565b6000816001600160a01b031663affed0e06040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5391906146f8565b90506000826001600160a01b031663d8d11f788460008060008060008060008b6040518a63ffffffff1660e01b8152600401611b9799989796959493929190614688565b602060405180830381865afa158015611bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd891906146f8565b600d546040516297db4760e51b81529192506001600160a01b038516916312fb68e091611c0e9185918a918a9190600401614821565b60006040518083038186803b158015611c2657600080fd5b505afa158015611c3a573d6000803e3d6000fd5b505060405163d4d9bdcd60e01b8152600481018490526001600160a01b038616925063d4d9bdcd9150602401600060405180830381600087803b158015611c8057600080fd5b505af1158015611c94573d6000803e3d6000fd5b50505050826001600160a01b03167f7115b98931e7aca6d0aa11d10fe28877316a661a44c4bfc93c76b19dbbf5b10782604051611cd391815260200190565b60405180910390a26001600160a01b0383166000908152601060209081526040808320858452825280832054808452600e909252909120548115801590611d1957508015155b15611df5576000611d298261102f565b90506000816007811115611d3f57611d3f614131565b1480611d5c57506001816007811115611d5a57611d5a614131565b145b15611dba5760008281526003602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90611db19084815260200190565b60405180910390a15b60408051838152602081018590527f2fb5fa945d862289cf48dfa8dd0a0b4506cb264322347a6184180c4b5dc9eb21910160405180910390a1505b5050505050505050565b333014611e495760405162461bcd60e51b8152602060048201526018602482015277476f7665726e6f723a206f6e6c79476f7665726e616e636560401b6044820152606401610f29565b611e60565b80611e5960046126c1565b03611e4e57505b600080856001600160a01b0316858585604051611e7e92919061462a565b60006040518083038185875af1925050503d8060008114611ebb576040519150601f19603f3d011682016040523d82523d6000602084013e611ec0565b606091505b5091509150611ee88282604051806060016040528060288152602001614c3660289139612fbb565b50505050505050565b600084848484604051602001611f0a94939291906148e8565b60408051601f19818403018152919052805160209091012095945050505050565b611f336121ec565b61127381612fd4565b6060604051806080016040528060498152602001614c8560499139905090565b611f646121ec565b61127381613012565b60006118468383611f8960408051602081019091526000815290565b612d9d565b6040516282b42960e81b815260040160405180910390fd5b600b5460405163bd85b03960e01b8152600481018390526000916064916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063bd85b03990602401602060405180830381865afa158015612014573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203891906146f8565b6120429190614933565b610caa919061494a565b6000610caa6120596130b3565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600061208a878787876131e3565b91509150610faf816132a7565b600085815260036020526040812060016120b08861102f565b60078111156120c1576120c1614131565b1461211a5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610f29565b80546000906121349088906001600160401b031686612d9d565b905061214388888884886133f1565b835160000361219857866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48988848960405161218b949392919061496c565b60405180910390a2611024565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516121d9959493929190614994565b60405180910390a2979650505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612235576040516392fe92bb60e01b815260040160405180910390fd5b565b6122bd565b84518110156122bb57306001600160a01b031685828151811061226157612261614711565b60200260200101516001600160a01b0316036122ab576122ab83828151811061228c5761228c614711565b602002602001015180519060200120600461351090919063ffffffff16565b6122b48161473d565b905061223c565b505b5050505050565b6000604051806060016040528060278152602001614c5e60279139905060005b8551811015611ee85760008087838151811061230257612302614711565b60200260200101516001600160a01b031687848151811061232557612325614711565b602002602001015187858151811061233f5761233f614711565b602002602001015160405161235491906149da565b60006040518083038185875af1925050503d8060008114612391576040519150601f19603f3d011682016040523d82523d6000602084013e612396565b606091505b50915091506123a6828286612fbb565b505050806123b39061473d565b90506122e4565b60006111fe858585856123d860408051602081019091526000815290565b612097565b6000806000806123ec85611207565b92509250925060008284116124015782612403565b835b905061240f82826149f6565b600087815260036020526040902054612430906001600160401b0316611fa6565b11159695505050505050565b60008061244883611207565b509150506064600c547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd85b03961249f876000908152600360205260409020546001600160401b031690565b6040518263ffffffff1660e01b81526004016124bd91815260200190565b602060405180830381865afa1580156124da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124fe91906146f8565b6125089190614933565b612512919061494a565b1092915050565b60008061252583611207565b505090506064600c547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd85b03961249f876000908152600360205260409020546001600160401b031690565b60008061258b86868686611ef1565b905060006125988261102f565b60078111156125a9576125a9614131565b146125f65760405162461bcd60e51b815260206004820152601c60248201527f476f7665726e6f723a20746f6f206c61746520746f2063616e63656c000000006044820152606401610f29565b600081815260036020526040902054600160401b90046001600160a01b0316336001600160a01b0316146126775760405162461bcd60e51b815260206004820152602260248201527f476f7665726e6f723a206f6e6c792070726f706f7365722063616e2063616e63604482015261195b60f21b6064820152608401610f29565b61167f8686868661354c565b600b80549082905560408051828152602081018490527fefd756ffab26c83a9c410308c3bce2daf19f87e2dfd240775beafe2d2be6bc0b9101610e7c565b60006126dc8254600f81810b600160801b909204900b131590565b156126fa57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546001600160801b03191692016001600160801b03169190911790915590565b604080516001808252818301909252606091829182916000919060208083019080368337505060408051600180825281830190925292935060009291506020808301908036833750506040805160018082528183019092529293506000929150602082015b606081526020019060019003908161279c57905050905030836000815181106127c7576127c7614711565b60200260200101906001600160a01b031690816001600160a01b0316815250506000826000815181106127fc576127fc614711565b602090810291909101810191909152604080516001600160a01b038b16602482015260448082018b905282518083039091018152606490910190915290810180516001600160e01b0316635c08558960e01b1790528151829060009061286457612864614711565b6020908102919091010152919450925090509250925092565b60065460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600655565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166395e02d736040518163ffffffff1660e01b8152600401602060405180830381865afa15801561291c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294091906146f8565b6040516370a0823160e01b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156129a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ca91906146f8565b101561127357604051630dd7804560e21b815260040160405180910390fd5b60008033905060004265ffffffffffff1690506000612a118888888880519060200120611ef1565b90508651885114612a345760405162461bcd60e51b8152600401610f2990614a09565b8551885114612a555760405162461bcd60e51b8152600401610f2990614a09565b6000885111612aa65760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610f29565b600081815260036020526040902054600160401b90046001600160a01b031615612b1c5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610f29565b6000612b2760065490565b612b3190846149f6565b90506000612b3e60075490565b612b4890836149f6565b90506040518060e00160405280612b5e8461366a565b6001600160401b031681526001600160a01b038716602082015260006040820152606001612b8b8361366a565b6001600160401b039081168252600060208084018290526040808501839052606094850183905288835260038252918290208551815492870151878501519186166001600160e01b031990941693909317600160401b6001600160a01b039094168402176001600160e01b0316600160e01b60e09290921c91909102178155938501516080860151908416921c0217600183015560a08301516002909201805460c09094015161ffff1990941692151561ff00191692909217610100931515939093029290921790558a517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e091859188918e918e91811115612c8f57612c8f613c75565b604051908082528060200260200182016040528015612cc257816020015b6060815260200190600190039081612cad5790505b508d88888f604051612cdc99989796959493929190614a4a565b60405180910390a1509098975050505050505050565b606060ff8314612d0c57612d05836136d6565b9050610caa565b818054612d189061463a565b80601f0160208091040260200160405190810160405280929190818152602001828054612d449061463a565b8015612d915780601f10612d6657610100808354040283529160200191612d91565b820191906000526020600020905b815481529060010190602001808311612d7457829003601f168201915b50505050509050610caa565b604051633ae4067560e21b81526001600160a01b038481166004830152602482018490526000917f00000000000000000000000000000000000000000000000000000000000000009091169063eb9019d490604401602060405180830381865afa158015612e0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184391906146f8565b60405163b52ef0e760e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063b52ef0e790602401602060405180830381865afa158015612e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebd91906146f8565b600114611273576040516282b42960e81b815260040160405180910390fd5b60006001600160a01b03831663d8d11f78612efa6020850185614756565b6020850135612f0c6040870187614771565b612f1c6080890160608a01614b21565b608089013560a08a013560c08b0135612f3c6101008d0160e08e01614756565b612f4e6101208e016101008f01614756565b8d61012001356040518c63ffffffff1660e01b8152600401612f7a9b9a99989796959493929190614b42565b602060405180830381865afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184691906146f8565b60608315612fca575081611846565b6118468383613715565b600c80549082905560408051828152602081018490527fc62358b0cdb315368e8a69b3a40e91d435d64202cd88a0e9224ce40740cf74189101610e7c565b600081116130725760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610f29565b60075460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600755565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561310c57507f000000000000000000000000000000000000000000000000000000000000000046145b1561313657507f000000000000000000000000000000000000000000000000000000000000000090565b6131de604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561321a575060009050600361329e565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561326e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166132975760006001925092505061329e565b9150600090505b94509492505050565b60008160048111156132bb576132bb614131565b036132c35750565b60018160048111156132d7576132d7614131565b036133245760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610f29565b600281600481111561333857613338614131565b036133855760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610f29565b600381600481111561339957613399614131565b036112735760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610f29565b6000821161344f5760405162461bcd60e51b815260206004820152602560248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a206e6f2077604482015264195a59da1d60da1b6064820152608401610f29565b6000858152600a602090815260408083206001600160a01b03881684529091529020546001600160801b031682116134dd5760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20616c6c2060448201526a1dd95a59da1d0818d85cdd60aa1b6064820152608401610f29565b60006134e88361373f565b90508151600003613504576134ff868683876137a8565b6122bb565b6122bb86868385613988565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60008061355b86868686611ef1565b905060006135688261102f565b9050600281600781111561357e5761357e614131565b1415801561359e5750600681600781111561359b5761359b614131565b14155b80156135bc575060078160078111156135b9576135b9614131565b14155b6136085760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610f29565b60008281526003602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906136589084815260200190565b60405180910390a15095945050505050565b60006001600160401b038211156136d25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610f29565b5090565b606060006136e383613bac565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b8151156137255781518083602001fd5b8060405162461bcd60e51b8152600401610f299190613e28565b60006001600160801b038211156136d25760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610f29565b6000848152600a602090815260408083206001600160a01b03871684529091529020546001600160801b0316156137f15760405162461bcd60e51b8152600401610f2990614bba565b6000848152600a602090815260408083206001600160a01b0387168452909152902080546001600160801b0319166001600160801b03841617905560ff8116613884576000848152600960205260408120805484929061385b9084906001600160801b0316614c0e565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550613982565b60001960ff8216016138c1576000848152600960205260409020805483919060109061385b908490600160801b90046001600160801b0316614c0e565b60011960ff8216016138f7576000848152600960205260408120600101805484929061385b9084906001600160801b0316614c0e565b60405162461bcd60e51b815260206004820152605460248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201527f6c696420737570706f72742076616c75652c206d75737420626520696e636c7560648201527364656420696e20566f74655479706520656e756d60601b608482015260a401610f29565b50505050565b80516030146139ee5760405162461bcd60e51b815260206004820152602c60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201526b6c696420766f74654461746160a01b6064820152608401610f29565b6020818101516040808401516000888152600a85528281206001600160a01b038916825290945290832054608083811c946001600160801b03948516949390911c92909116908183613a4086886149f6565b613a4a91906149f6565b613a5491906149f6565b9050866001600160801b0316811115613a7f5760405162461bcd60e51b8152600401610f2990614bba565b6000898152600a602090815260408083206001600160a01b038c168452825280832080546001600160801b0319166001600160801b03868116919091179091558c8452600983529281902081516060808201845282548087168352600160801b900486169482019490945260019190910154909316838201528051918201905281518190613b0e908990614c0e565b6001600160801b03168152602001868360200151613b2c9190614c0e565b6001600160801b03168152602001858360400151613b4a9190614c0e565b6001600160801b0390811690915260009b8c526009602090815260409c8d90208351918401518316600160801b0291831691909117815591909b01516001909101805491909b166001600160801b031990911617909955505050505050505050565b600060ff8216601f811115610caa57604051632cd44ac360e21b815260040160405180910390fd5b600060208284031215613be657600080fd5b5035919050565b600060208284031215613bff57600080fd5b81356001600160e01b03198116811461184657600080fd5b803560ff81168114613c2857600080fd5b919050565b60008083601f840112613c3f57600080fd5b5081356001600160401b03811115613c5657600080fd5b602083019150836020828501011115613c6e57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613cb357613cb3613c75565b604052919050565b60006001600160401b03831115613cd457613cd4613c75565b613ce7601f8401601f1916602001613c8b565b9050828152838383011115613cfb57600080fd5b828260208301376000602084830101529392505050565b600082601f830112613d2357600080fd5b61184683833560208501613cbb565b60008060008060008060008060e0898b031215613d4e57600080fd5b88359750613d5e60208a01613c17565b965060408901356001600160401b0380821115613d7a57600080fd5b613d868c838d01613c2d565b909850965060608b0135915080821115613d9f57600080fd5b50613dac8b828c01613d12565b945050613dbb60808a01613c17565b925060a0890135915060c089013590509295985092959890939650565b60005b83811015613df3578181015183820152602001613ddb565b50506000910152565b60008151808452613e14816020860160208601613dd8565b601f01601f19169290920160200192915050565b6020815260006118466020830184613dfc565b80356001600160a01b0381168114613c2857600080fd5b60008060008060808587031215613e6857600080fd5b613e7185613e3b565b9350613e7f60208601613e3b565b92506040850135915060608501356001600160401b03811115613ea157600080fd5b613ead87828801613d12565b91505092959194509250565b60006001600160401b03821115613ed257613ed2613c75565b5060051b60200190565b600082601f830112613eed57600080fd5b81356020613f02613efd83613eb9565b613c8b565b82815260059290921b84018101918181019086841115613f2157600080fd5b8286015b84811015613f4357613f3681613e3b565b8352918301918301613f25565b509695505050505050565b600082601f830112613f5f57600080fd5b81356020613f6f613efd83613eb9565b82815260059290921b84018101918181019086841115613f8e57600080fd5b8286015b84811015613f435780358352918301918301613f92565b600082601f830112613fba57600080fd5b81356020613fca613efd83613eb9565b82815260059290921b84018101918181019086841115613fe957600080fd5b8286015b84811015613f435780356001600160401b0381111561400c5760008081fd5b61401a8986838b0101613d12565b845250918301918301613fed565b6000806000806080858703121561403e57600080fd5b84356001600160401b038082111561405557600080fd5b61406188838901613edc565b9550602087013591508082111561407757600080fd5b61408388838901613f4e565b9450604087013591508082111561409957600080fd5b506140a687828801613fa9565b949793965093946060013593505050565b600080604083850312156140ca57600080fd5b823591506140da60208401613e3b565b90509250929050565b600080600080600060a086880312156140fb57600080fd5b8535945061410b60208701613c17565b935061411960408701613c17565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061415b5761415b614131565b91905290565b6000806040838503121561417457600080fd5b823591506140da60208401613c17565b6000806040838503121561419757600080fd5b6141a083613e3b565b946020939093013593505050565b6000806000806000608086880312156141c657600080fd5b853594506141d660208701613c17565b935060408601356001600160401b03808211156141f257600080fd5b6141fe89838a01613c2d565b9095509350606088013591508082111561421757600080fd5b5061422488828901613d12565b9150509295509295909350565b6000806000806060858703121561424757600080fd5b8435935061425760208601613c17565b925060408501356001600160401b0381111561427257600080fd5b61427e87828801613c2d565b95989497509550505050565b600080600080608085870312156142a057600080fd5b84356001600160401b03808211156142b757600080fd5b6142c388838901613edc565b955060208701359150808211156142d957600080fd5b6142e588838901613f4e565b945060408701359150808211156142fb57600080fd5b61430788838901613fa9565b9350606087013591508082111561431d57600080fd5b508501601f8101871361432f57600080fd5b613ead87823560208401613cbb565b600081518084526020808501945080840160005b8381101561436e57815187529582019590820190600101614352565b509495945050505050565b60ff60f81b8816815260e06020820152600061439860e0830189613dfc565b82810360408401526143aa8189613dfc565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050610d9a818561433e565b6000806000606084860312156143f057600080fd5b6143f984613e3b565b92506020840135915060408401356001600160401b0381111561441b57600080fd5b61442786828701613d12565b9150509250925092565b6000806000806060858703121561444757600080fd5b61445085613e3b565b935060208501356001600160401b038082111561446c57600080fd5b90860190610140828903121561448157600080fd5b9093506040860135908082111561449757600080fd5b5061427e87828801613c2d565b6000806000604084860312156144b957600080fd5b6144c284613e3b565b925060208401356001600160401b038111156144dd57600080fd5b6144e986828701613c2d565b9497909650939450505050565b600080600080600060a0868803121561450e57600080fd5b61451786613e3b565b945061452560208701613e3b565b935060408601356001600160401b038082111561454157600080fd5b61454d89838a01613f4e565b9450606088013591508082111561456357600080fd5b61456f89838a01613f4e565b9350608088013591508082111561421757600080fd5b6000806000806060858703121561459b57600080fd5b6145a485613e3b565b93506020850135925060408501356001600160401b0381111561427257600080fd5b600080600080600060a086880312156145de57600080fd5b6145e786613e3b565b94506145f560208701613e3b565b9350604086013592506060860135915060808601356001600160401b0381111561461e57600080fd5b61422488828901613d12565b8183823760009101908152919050565b600181811c9082168061464e57607f821691505b60208210810361466e57634e487b7160e01b600052602260045260246000fd5b50919050565b6002811061468457614684614131565b9052565b6001600160a01b038a81168252602082018a9052610140604083018190526000838201526101608301916146bf606085018c614674565b60808401999099525060a082019690965260c081019490945291851660e084015290931661010082015261012001919091529392505050565b60006020828403121561470a57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161474f5761474f614727565b5060010190565b60006020828403121561476857600080fd5b61184682613e3b565b6000808335601e1984360301811261478857600080fd5b8301803591506001600160401b038211156147a257600080fd5b602001915036819003821315613c6e57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8681526080602082015260006147fa6080830187896147b7565b828103604084015261480d8186886147b7565b915050826060830152979650505050505050565b848152608060208201526000608082015260a06040820152600061484960a0830185876147b7565b905082606083015295945050505050565b600081518084526020808501945080840160005b8381101561436e5781516001600160a01b03168752958201959082019060010161486e565b600081518084526020808501808196508360051b8101915082860160005b858110156148db5782840389526148c9848351613dfc565b988501989350908401906001016148b1565b5091979650505050505050565b6080815260006148fb608083018761485a565b828103602084015261490d818761433e565b905082810360408401526149218186614893565b91505082606083015295945050505050565b8082028115828204841417610caa57610caa614727565b60008261496757634e487b7160e01b600052601260045260246000fd5b500490565b84815260ff8416602082015282604082015260806060820152600061167f6080830184613dfc565b85815260ff8516602082015283604082015260a0606082015260006149bc60a0830185613dfc565b82810360808401526149ce8185613dfc565b98975050505050505050565b600082516149ec818460208701613dd8565b9190910192915050565b80820180821115610caa57610caa614727565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60006101208b8352602060018060a01b038c1681850152816040850152614a738285018c61485a565b91508382036060850152614a87828b61433e565b915083820360808501528189518084528284019150828160051b850101838c0160005b83811015614ad857601f19878403018552614ac6838351613dfc565b94860194925090850190600101614aaa565b505086810360a0880152614aec818c614893565b9450505050508560c08401528460e0840152828103610100840152614b118185613dfc565b9c9b505050505050505050505050565b600060208284031215614b3357600080fd5b81356002811061184657600080fd5b6001600160a01b038c81168252602082018c905261014060408301819052600091614b708483018d8f6147b7565b9250614b7f606085018c614674565b60808401999099525060a082019690965260c081019490945291851660e0840152909316610100820152610120019190915295945050505050565b60208082526034908201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20766f7465604082015273081ddbdd5b1908195e18d95959081dd95a59da1d60621b606082015260800190565b6001600160801b03818116838216019080821115614c2e57614c2e614727565b509291505056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765737570706f72743d627261766f2671756f72756d3d616761696e73742c6162737461696e2671756f72756d3d666f722c6162737461696e26706172616d733d6672616374696f6e616ca2646970667358221220d19a896e145806e2b7fbe1311a3093d31d3115304d93f39c107d36d4821bdc5664736f6c63430008130033000000000000000000000000c8418af6358ffdda74e09ca9cc3fe03ca6adc5b000000000000000000000000077314ad8dcd38c44874bf95cb3cf6622f31a4037000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000033