196 txs
223 calls
constructor
constructor(address signerAddress_, address redeemAddress_, address team_, address admin_)
functions
admin
viewfunction admin() view returns (address)
crowdsales
viewfunction crowdsales(uint256) view returns (uint256 priceInEuro, uint256 priceInEuroPreSale, address collection, address bottle, uint8 phase, uint256 startTime)
DECIMAL_FACTOR_DISCOUNT
viewfunction DECIMAL_FACTOR_DISCOUNT() view returns (uint256)
DECIMAL_FACTOR_PRICE
viewfunction DECIMAL_FACTOR_PRICE() view returns (uint256)
getPrice
viewfunction getPrice(address token, address to, uint256 amount, uint256 priceInEuro, uint256 coupon, bool isMint, bool isCollectionHolder) view returns (uint256)
isValidSignature
viewfunction isValidSignature(address account, bytes signature, address bottle, uint256 coupon, bool isCollectionHolder) view returns (bool)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
priceOracle
viewfunction priceOracle(address) view returns (address)
priceOracleEuro
viewfunction priceOracleEuro() view returns (address)
redeemAddress
viewfunction redeemAddress() view returns (address)
signerAddress
viewfunction signerAddress() view returns (address)
team
viewfunction team() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addCrowdsale
nonpayablefunction addCrowdsale(uint256 id_, uint256 priceInEuro_, uint256 priceInEuroPreSale_, address collection_, address bottle_)
preMint
payablefunction preMint(tuple params) payable returns (uint256, uint256)
publicMint
payablefunction publicMint(tuple params) payable returns (uint256, uint256)
redeem
payablefunction redeem(tuple data, address[] bottleContracts, uint256[] tokenIds, bytes signatureIntercellar) payable
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address admin_)
setCollection
nonpayablefunction setCollection(uint256 crowdsaleId, address collection)
setOraclePrice
nonpayablefunction setOraclePrice(address token, address oracle)
setOraclePriceEuro
nonpayablefunction setOraclePriceEuro(address oracle)
setPhase
nonpayablefunction setPhase(uint256 crowdsaleId, uint8 phase)
setPreSalePrice
nonpayablefunction setPreSalePrice(uint256 crowdsaleId, uint256 priceInEuro)
setRedeemAddress
nonpayablefunction setRedeemAddress(address redeemAddress_)
setSalePrice
nonpayablefunction setSalePrice(uint256 crowdsaleId, uint256 priceInEuro)
setSigner
nonpayablefunction setSigner(address signer_)
setTeamAddress
nonpayablefunction setTeamAddress(address teamAddress_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawEther
nonpayablefunction withdrawEther()
withdrawToken
nonpayablefunction withdrawToken(address token)
events
AdminUpdated
event AdminUpdated(address _admin)
CollectionChanged
event CollectionChanged(uint256 indexed crowdsaleID, address indexed collection)
CrowdsaleAdded
event CrowdsaleAdded(uint256 indexed crowdsaleId, uint256 priceInEuro, uint256 priceInEuroPreSale, address collection, address bottle)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
PhaseChanged
event PhaseChanged(uint256 indexed crowdsaleId, uint8 phase)
PreMinted
event PreMinted(uint256 indexed crowdsaleId, address indexed to, uint256 amount, uint256 priceInEuro, uint256 coupon, uint256 pricePaid, uint256 orderId)
PriceChanged
event PriceChanged(uint256 indexed crowdsaleId, uint256 priceInEuro)
PriceChangedPreSale
event PriceChangedPreSale(uint256 indexed crowdsaleId, uint256 priceInEuro)
PriceOracleChanged
event PriceOracleChanged(address indexed token, address indexed oracle)
PriceOracleEuroChanged
event PriceOracleEuroChanged(address indexed oracle)
PublicMinted
event PublicMinted(uint256 indexed crowdsaleId, address indexed to, uint256 amount, uint256 priceInEuro, uint256 coupon, uint256 pricePaid, uint256 orderId)
RedeemAddressUpdated
event RedeemAddressUpdated(address indexed redeemAddress)
Redeemed
event Redeemed(address[] bottles, uint256[] ids, address owner, uint256 redeemId)
SignerChanged
event SignerChanged(address indexed signer)
TeamAddressUpdated
event TeamAddressUpdated(address indexed team)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162006030380380620060308339818101604052810190620000379190620004e6565b620000576200004b6200032d60201b60201c565b6200033560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620000c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c090620005b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200013b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013290620005b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001a490620005b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200021f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200021690620005b9565b60405180910390fd5b83600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620005db565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905562000370816200037360201b6200291c1760201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000469826200043c565b9050919050565b6200047b816200045c565b81146200048757600080fd5b50565b6000815190506200049b8162000470565b92915050565b6000620004ae826200043c565b9050919050565b620004c081620004a1565b8114620004cc57600080fd5b50565b600081519050620004e081620004b5565b92915050565b6000806000806080858703121562000503576200050262000437565b5b600062000513878288016200048a565b945050602062000526878288016200048a565b93505060406200053987828801620004cf565b92505060606200054c878288016200048a565b91505092959194509250565b600082825260208201905092915050565b7f43726f776473616c653a207a65726f2061646472657373000000000000000000600082015250565b6000620005a160178362000558565b9150620005ae8262000569565b602082019050919050565b60006020820190508181036000830152620005d48162000592565b9050919050565b615a4580620005eb6000396000f3fe6080604052600436106101e35760003560e01c80638947606911610102578063bbd1f24711610095578063e346111911610064578063e34611191461068e578063ecf36820146106b7578063f2fde38b146106e8578063f851a44014610711576101e3565b8063bbd1f247146105e8578063ca0581dc14610611578063d177524b1461063a578063e30c397814610663576101e3565b8063a00401a7116100d1578063a00401a714610517578063a1b1e99f14610554578063b54bb8d81461057d578063b90e854e146105a6576101e3565b8063894760691461047c5780638ada7d16146104a55780638da5cb5b146104c157806399afd777146104ec576101e3565b80635b7633d01161017a578063715018a611610149578063715018a61461040c5780637362377b1461042357806379ba50971461043a57806385f2aef214610451576101e3565b80635b7633d0146103665780636690864e146103915780636c19e783146103ba578063704b6c02146103e3576101e3565b80632951f1b2116101b65780632951f1b2146102985780632fee4a17146102d55780634950f643146103005780635469428c14610329576101e3565b8063053992c5146101e85780630613c16c146102115780631639d3151461023c578063265b51501461026d575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a919061362b565b61073c565b005b34801561021d57600080fd5b50610226610842565b604051610233919061367a565b60405180910390f35b6102566004803603810190610251919061399a565b610848565b6040516102649291906139e3565b60405180910390f35b34801561027957600080fd5b50610282610b6c565b60405161028f9190613a1b565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190613a36565b610b92565b6040516102cc9190613a1b565b60405180910390f35b3480156102e157600080fd5b506102ea610bc5565b6040516102f79190613a1b565b60405180910390f35b34801561030c57600080fd5b5061032760048036038101906103229190613a63565b610beb565b005b34801561033557600080fd5b50610350600480360381019061034b9190613ade565b610f30565b60405161035d9190613b84565b60405180910390f35b34801561037257600080fd5b5061037b610fdb565b6040516103889190613a1b565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190613bdd565b611001565b005b3480156103c657600080fd5b506103e160048036038101906103dc9190613a36565b6110ff565b005b3480156103ef57600080fd5b5061040a60048036038101906104059190613a36565b6111fd565b005b34801561041857600080fd5b506104216112ef565b005b34801561042f57600080fd5b50610438611303565b005b34801561044657600080fd5b5061044f61135a565b005b34801561045d57600080fd5b506104666113e7565b6040516104739190613c19565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190613a36565b61140d565b005b6104bf60048036038101906104ba9190613d9e565b6114c2565b005b3480156104cd57600080fd5b506104d6611701565b6040516104e39190613a1b565b60405180910390f35b3480156104f857600080fd5b5061050161172a565b60405161050e919061367a565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190613e64565b611731565b60405161054b919061367a565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190613f06565b611b1c565b005b34801561058957600080fd5b506105a4600480360381019061059f9190613f46565b611c00565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190613f86565b611d4c565b6040516105df96959493929190614089565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a919061410f565b611dd5565b005b34801561061d57600080fd5b506106386004803603810190610633919061362b565b611f46565b005b34801561064657600080fd5b50610661600480360381019061065c9190613a36565b61204c565b005b34801561066f57600080fd5b506106786120db565b6040516106859190613a1b565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190613a36565b612105565b005b6106d160048036038101906106cc9190614235565b612203565b6040516106df9291906139e3565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a9190613a36565b612849565b005b34801561071d57600080fd5b506107266128f6565b6040516107339190613a1b565b60405180910390f35b6107446129e0565b81600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e1906142db565b60405180910390fd5b816008600085815260200190815260200160002060000181905550827f8aa4fa52648a6d15edce8a179c792c86f3719d0cc3c572cf90f91948f0f2cb6883604051610835919061367a565b60405180910390a2505050565b61271081565b60008060006008600085600001518152602001908152602001600020905060028081111561087957610878614012565b5b8160030160149054906101000a900460ff16600281111561089d5761089c614012565b5b146108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d490614347565b60405180910390fd5b60008460800151111561096b5761092b84602001518560e001518360030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687608001518860a00151610f30565b61096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610961906143b3565b60405180910390fd5b5b60006109958560400151866060015184600001548860a0015160018a608001518b60200151612a5e565b90508160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a959b89866020015187606001518860c001516040518463ffffffff1660e01b8152600401610a0493929190614404565b600060405180830381600087803b158015610a1e57600080fd5b505af1158015610a32573d6000803e3d6000fd5b50505050846020015173ffffffffffffffffffffffffffffffffffffffff1685600001517fb24aaf95fe048cdee05c58f28965f7c365a1a71f87a2a222ab52bc8e34e01f36876060015185600001548960800151868b60c00151604051610a9d95949392919061443b565b60405180910390a384606001516001866060015160ff168460030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4791906144a3565b610b5191906144ff565b610b5b9190614533565b8160ff169150935093505050915091565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bf36129e0565b600073ffffffffffffffffffffffffffffffffffffffff166008600087815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8f906145d5565b60405180910390fd5b60008411610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd290614641565b60405180910390fd5b60008311610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1590614641565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d84906146ad565b60405180910390fd5b6040518060c001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200160006002811115610df057610def614012565b5b81526020014281525060086000878152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160030160146101000a81548160ff02191690836002811115610ed957610ed8614012565b5b021790555060a08201518160040155905050847f94a4a33f89383886c8aba685cd473e5af8e1353e90deaf89aaef7dcd36e310ec85858585604051610f2194939291906146cd565b60405180910390a25050505050565b600080610f6a8730878787604051602001610f4f9594939291906147c3565b60405160208183030381529060405280519060200120612bfb565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fb88783612c3190919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff161491505095945050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110096129e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106f9061486e565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f56d8cf44088db71780335dd49b5106c9a97ef139d0989cf4c95ce6a7fff36d5560405160405180910390a250565b6111076129e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d906148da565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f5719a5656c5cfdaafa148ecf366fd3b0a7fae06449ce2a46225977fb7417e29d60405160405180910390a250565b6112056129e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90614946565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f54e4612788f90384e6843298d7854436f3a585b2c3831ab66abf1de63bfa6c2d816040516112e49190613a1b565b60405180910390a150565b6112f76129e0565b6113016000612c58565b565b61130b6129e0565b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611356573d6000803e3d6000fd5b5050565b6000611364612c89565b90508073ffffffffffffffffffffffffffffffffffffffff166113856120db565b73ffffffffffffffffffffffffffffffffffffffff16146113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d2906149d8565b60405180910390fd5b6113e481612c58565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114156129e0565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114509190613a1b565b602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906144a3565b90506114be33828473ffffffffffffffffffffffffffffffffffffffff16612c919092919063ffffffff16565b5050565b82829050858590501461150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190614a44565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ada7d168787878787876040518763ffffffff1660e01b815260040161156f96959493929190614cbe565b6020604051808303816000875af115801561158e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b29190614d34565b5060005b85859050811015611691578585828181106115d4576115d3614d61565b5b90506020020160208101906115e99190613a36565b73ffffffffffffffffffffffffffffffffffffffff16635efa494385858481811061161757611616614d61565b5b9050602002013589606001518a604001518b60c001516040518563ffffffff1660e01b815260040161164c9493929190614d90565b600060405180830381600087803b15801561166657600080fd5b505af115801561167a573d6000803e3d6000fd5b50505050808061168990614dd5565b9150506115b6565b507f7df220e157dddb9e4b9e03b14067c78198b4e53199ff519f41f9707ab170d141858585858a60c001518b604001516040516116d396959493929190614e1d565b60405180910390a16116f88660200151600188600001516000808b60a0015133612a5e565b50505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620f424081565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c59190614e89565b600a6117d19190614fe9565b670de0b6b3a76400006117e2612d17565b87896117ee91906144ff565b6117f89190615034565b6118029190615034565b61180c91906150bd565b905060006118198a612dfb565b600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e79190614e89565b600a6118f39190614fe9565b836118fe9190615034565b61190891906150bd565b90506000620f4240898361191c9190615034565b61192691906150bd565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3bcbf636040518163ffffffff1660e01b8152600401602060405180830381865afa158015611997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bb9190614d34565b90508080156119c75750865b15611b0a576000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634cf088d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5f9190615103565b905060008173ffffffffffffffffffffffffffffffffffffffff166355c2604b8e8a6040518363ffffffff1660e01b8152600401611a9e929190615130565b602060405180830381865afa158015611abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611adf91906144a3565b90506127108185611af09190615034565b611afa91906150bd565b84611b0591906144ff565b935050505b81945050505050979650505050505050565b611b246129e0565b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f40bddd72ea96b80dae14e3d13e8ce2c4ecd2500d88c6c0004d24a00deab28f9c60405160405180910390a35050565b611c086129e0565b81600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca5906142db565b60405180910390fd5b816008600085815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16837f709a191b76b2b2aef02983ac940c378a23b898b475080684b15245c08a8a1fd360405160405180910390a3505050565b60086020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160149054906101000a900460ff16908060040154905086565b611ddd6129e0565b81600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7a906142db565b60405180910390fd5b816008600085815260200190815260200160002060030160146101000a81548160ff02191690836002811115611ebc57611ebb614012565b5b021790555060016002811115611ed557611ed4614012565b5b826002811115611ee857611ee7614012565b5b03611f09574260086000858152602001908152602001600020600401819055505b827f70eca82567b065893a5e6cc590178b6b320855676b6a9a066625933e0c8ebe5883604051611f399190615159565b60405180910390a2505050565b611f4e6129e0565b81600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb906142db565b60405180910390fd5b816008600085815260200190815260200160002060010181905550827fa3de29236e325391037675b0f00d5932cedda388025e2073984d6c36e65a3bd18360405161203f919061367a565b60405180910390a2505050565b6120546129e0565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167ff8db9dc728751015d3265064db34b7f513b556c6630fa0a8335e59ea7f85aef260405160405180910390a250565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61210d6129e0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361217c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612173906151c0565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f0d86357156c3a4a58e71746abe87b8b56c50b0becf202b90a80321005493087760405160405180910390a250565b6000806000600860008560000151815260200190815260200160002090506001600281111561223557612234614012565b5b8160030160149054906101000a900460ff16600281111561225957612258614012565b5b14612299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122909061522c565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f3bcbf636040518163ffffffff1660e01b8152600401602060405180830381865afa158015612308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232c9190614d34565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634cf088d96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561239d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c19190615103565b9050600061240687602001518860e001518660030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a608001518b60a00151610f30565b905060008380156124a357508273ffffffffffffffffffffffffffffffffffffffff166379c7103b89602001516040518263ffffffff1660e01b815260040161244f9190613a1b565b602060405180830381865afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249091906144a3565b8560040154426124a091906144ff565b11155b806125ac5750600073ffffffffffffffffffffffffffffffffffffffff168560020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156125ab575060008560020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318a602001516040518263ffffffff1660e01b81526004016125689190613a1b565b602060405180830381865afa158015612585573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a991906144a3565b115b5b806125b45750815b90506000886080015111156126045781612603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fa906143b3565b60405180910390fd5b5b80612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b90615298565b60405180910390fd5b600061266e89604001518a6060015188600101548c60a0015160018e608001518f60200151612a5e565b90508560030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a959b898a602001518b606001518c60c001516040518463ffffffff1660e01b81526004016126dd93929190614404565b600060405180830381600087803b1580156126f757600080fd5b505af115801561270b573d6000803e3d6000fd5b50505050886020015173ffffffffffffffffffffffffffffffffffffffff1689600001517f90a45abed2cc883f29b168784a0a8bcaa9034a230f8aeabf159fbfea3ff446f78b6060015189600101548d60800151868f60c0015160405161277695949392919061443b565b60405180910390a3886060015160018a6060015160ff168860030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282091906144a3565b61282a91906144ff565b6128349190614533565b8160ff16915097509750505050505050915091565b6128516129e0565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166128b1611701565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6129e8612c89565b73ffffffffffffffffffffffffffffffffffffffff16612a06611701565b73ffffffffffffffffffffffffffffffffffffffff1614612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390615304565b60405180910390fd5b565b600080612a7389848a60ff168a888a8c611731565b9050600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1603612ab957612ab4813485612f1e565b612bec565b60003414612afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af390615370565b60405180910390fd5b60008973ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6d9190614e89565b6012612b799190615390565b905060008214612bea57612be933600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600a612bb79190614fe9565b85612bc291906150bd565b8d73ffffffffffffffffffffffffffffffffffffffff1661302a909392919063ffffffff16565b5b505b80915050979650505050505050565b60007f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005281601c52603c6000209050919050565b6000806000612c4085856130b3565b91509150612c4d81613104565b819250505092915050565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055612c868161291c565b50565b600033905090565b612d128363a9059cbb60e01b8484604051602401612cb09291906153c4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061326a565b505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015612d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dab9190615465565b50505091505060008113612df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612deb9061552c565b60405180910390fd5b8091505090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015612ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecc9190615465565b50505091505060008113612f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0c9061552c565b60405180910390fd5b80915050919050565b82821015612f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5890615598565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612fc9573d6000803e3d6000fd5b5082821115613025578073ffffffffffffffffffffffffffffffffffffffff166108fc8484612ff891906144ff565b9081150290604051600060405180830381858888f19350505050158015613023573d6000803e3d6000fd5b505b505050565b6130ad846323b872dd60e01b85858560405160240161304b939291906155b8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061326a565b50505050565b60008060418351036130f45760008060006020860151925060408601519150606086015160001a90506130e887828585613332565b945094505050506130fd565b60006002915091505b9250929050565b6000600481111561311857613117614012565b5b81600481111561312b5761312a614012565b5b0315613267576001600481111561314557613144614012565b5b81600481111561315857613157614012565b5b03613198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318f9061563b565b60405180910390fd5b600260048111156131ac576131ab614012565b5b8160048111156131bf576131be614012565b5b036131ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f6906156a7565b60405180910390fd5b6003600481111561321357613212614012565b5b81600481111561322657613225614012565b5b03613266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325d90615739565b60405180910390fd5b5b50565b60006132cc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166134149092919063ffffffff16565b90506000815114806132ee5750808060200190518101906132ed9190614d34565b5b61332d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613324906157cb565b60405180910390fd5b505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561336d57600060039150915061340b565b6000600187878787604051600081526020016040526040516133929493929190615813565b6020604051602081039080840390855afa1580156133b4573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036134025760006001925092505061340b565b80600092509250505b94509492505050565b6060613423848460008561342c565b90509392505050565b606082471015613471576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613468906158ca565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161349a9190615926565b60006040518083038185875af1925050503d80600081146134d7576040519150601f19603f3d011682016040523d82523d6000602084013e6134dc565b606091505b50915091506134ed878383876134f9565b92505050949350505050565b6060831561355b576000835103613553576135138561356e565b613552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354990615989565b60405180910390fd5b5b829050613566565b6135658383613591565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156135a45781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135d891906159ed565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613608816135f5565b811461361357600080fd5b50565b600081359050613625816135ff565b92915050565b60008060408385031215613642576136416135eb565b5b600061365085828601613616565b925050602061366185828601613616565b9150509250929050565b613674816135f5565b82525050565b600060208201905061368f600083018461366b565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6136e38261369a565b810181811067ffffffffffffffff82111715613702576137016136ab565b5b80604052505050565b60006137156135e1565b905061372182826136da565b919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137568261372b565b9050919050565b6137668161374b565b811461377157600080fd5b50565b6000813590506137838161375d565b92915050565b600060ff82169050919050565b61379f81613789565b81146137aa57600080fd5b50565b6000813590506137bc81613796565b92915050565b60008115159050919050565b6137d7816137c2565b81146137e257600080fd5b50565b6000813590506137f4816137ce565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561381f5761381e6136ab565b5b6138288261369a565b9050602081019050919050565b82818337600083830152505050565b600061385761385284613804565b61370b565b905082815260208101848484011115613873576138726137ff565b5b61387e848285613835565b509392505050565b600082601f83011261389b5761389a6137fa565b5b81356138ab848260208601613844565b91505092915050565b600061010082840312156138cb576138ca613695565b5b6138d661010061370b565b905060006138e684828501613616565b60008301525060206138fa84828501613774565b602083015250604061390e84828501613774565b6040830152506060613922848285016137ad565b606083015250608061393684828501613616565b60808301525060a061394a848285016137e5565b60a08301525060c061395e84828501613616565b60c08301525060e082013567ffffffffffffffff81111561398257613981613726565b5b61398e84828501613886565b60e08301525092915050565b6000602082840312156139b0576139af6135eb565b5b600082013567ffffffffffffffff8111156139ce576139cd6135f0565b5b6139da848285016138b4565b91505092915050565b60006040820190506139f8600083018561366b565b613a05602083018461366b565b9392505050565b613a158161374b565b82525050565b6000602082019050613a306000830184613a0c565b92915050565b600060208284031215613a4c57613a4b6135eb565b5b6000613a5a84828501613774565b91505092915050565b600080600080600060a08688031215613a7f57613a7e6135eb565b5b6000613a8d88828901613616565b9550506020613a9e88828901613616565b9450506040613aaf88828901613616565b9350506060613ac088828901613774565b9250506080613ad188828901613774565b9150509295509295909350565b600080600080600060a08688031215613afa57613af96135eb565b5b6000613b0888828901613774565b955050602086013567ffffffffffffffff811115613b2957613b286135f0565b5b613b3588828901613886565b9450506040613b4688828901613774565b9350506060613b5788828901613616565b9250506080613b68888289016137e5565b9150509295509295909350565b613b7e816137c2565b82525050565b6000602082019050613b996000830184613b75565b92915050565b6000613baa8261372b565b9050919050565b613bba81613b9f565b8114613bc557600080fd5b50565b600081359050613bd781613bb1565b92915050565b600060208284031215613bf357613bf26135eb565b5b6000613c0184828501613bc8565b91505092915050565b613c1381613b9f565b82525050565b6000602082019050613c2e6000830184613c0a565b92915050565b600060e08284031215613c4a57613c49613695565b5b613c5460e061370b565b90506000613c6484828501613616565b6000830152506020613c7884828501613774565b6020830152506040613c8c84828501613616565b6040830152506060613ca084828501613616565b6060830152506080613cb484828501613616565b60808301525060a0613cc884828501613616565b60a08301525060c0613cdc84828501613774565b60c08301525092915050565b600080fd5b600080fd5b60008083601f840112613d0857613d076137fa565b5b8235905067ffffffffffffffff811115613d2557613d24613ce8565b5b602083019150836020820283011115613d4157613d40613ced565b5b9250929050565b60008083601f840112613d5e57613d5d6137fa565b5b8235905067ffffffffffffffff811115613d7b57613d7a613ce8565b5b602083019150836020820283011115613d9757613d96613ced565b5b9250929050565b6000806000806000806101408789031215613dbc57613dbb6135eb565b5b6000613dca89828a01613c34565b96505060e087013567ffffffffffffffff811115613deb57613dea6135f0565b5b613df789828a01613cf2565b955095505061010087013567ffffffffffffffff811115613e1b57613e1a6135f0565b5b613e2789828a01613d48565b935093505061012087013567ffffffffffffffff811115613e4b57613e4a6135f0565b5b613e5789828a01613886565b9150509295509295509295565b600080600080600080600060e0888a031215613e8357613e826135eb565b5b6000613e918a828b01613774565b9750506020613ea28a828b01613774565b9650506040613eb38a828b01613616565b9550506060613ec48a828b01613616565b9450506080613ed58a828b01613616565b93505060a0613ee68a828b016137e5565b92505060c0613ef78a828b016137e5565b91505092959891949750929550565b60008060408385031215613f1d57613f1c6135eb565b5b6000613f2b85828601613774565b9250506020613f3c85828601613774565b9150509250929050565b60008060408385031215613f5d57613f5c6135eb565b5b6000613f6b85828601613616565b9250506020613f7c85828601613774565b9150509250929050565b600060208284031215613f9c57613f9b6135eb565b5b6000613faa84828501613616565b91505092915050565b6000819050919050565b6000613fd8613fd3613fce8461372b565b613fb3565b61372b565b9050919050565b6000613fea82613fbd565b9050919050565b6000613ffc82613fdf565b9050919050565b61400c81613ff1565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061405257614051614012565b5b50565b600081905061406382614041565b919050565b600061407382614055565b9050919050565b61408381614068565b82525050565b600060c08201905061409e600083018961366b565b6140ab602083018861366b565b6140b86040830187613a0c565b6140c56060830186614003565b6140d2608083018561407a565b6140df60a083018461366b565b979650505050505050565b600381106140f757600080fd5b50565b600081359050614109816140ea565b92915050565b60008060408385031215614126576141256135eb565b5b600061413485828601613616565b9250506020614145858286016140fa565b9150509250929050565b6000610100828403121561416657614165613695565b5b61417161010061370b565b9050600061418184828501613616565b600083015250602061419584828501613774565b60208301525060406141a984828501613774565b60408301525060606141bd848285016137ad565b60608301525060806141d184828501613616565b60808301525060a06141e5848285016137e5565b60a08301525060c06141f984828501613616565b60c08301525060e082013567ffffffffffffffff81111561421d5761421c613726565b5b61422984828501613886565b60e08301525092915050565b60006020828403121561424b5761424a6135eb565b5b600082013567ffffffffffffffff811115614269576142686135f0565b5b6142758482850161414f565b91505092915050565b600082825260208201905092915050565b7f43726f776473616c653a206e6f74206578697374730000000000000000000000600082015250565b60006142c560158361427e565b91506142d08261428f565b602082019050919050565b600060208201905081810360008301526142f4816142b8565b9050919050565b7f43726f776473616c653a206e6f7420696e2073616c6520706861736500000000600082015250565b6000614331601c8361427e565b915061433c826142fb565b602082019050919050565b6000602082019050818103600083015261436081614324565b9050919050565b7f43726f776473616c653a20696e76616c6964207369676e617475726500000000600082015250565b600061439d601c8361427e565b91506143a882614367565b602082019050919050565b600060208201905081810360008301526143cc81614390565b9050919050565b60006143ee6143e96143e484613789565b613fb3565b6135f5565b9050919050565b6143fe816143d3565b82525050565b60006060820190506144196000830186613a0c565b61442660208301856143f5565b614433604083018461366b565b949350505050565b600060a08201905061445060008301886143f5565b61445d602083018761366b565b61446a604083018661366b565b614477606083018561366b565b614484608083018461366b565b9695505050505050565b60008151905061449d816135ff565b92915050565b6000602082840312156144b9576144b86135eb565b5b60006144c78482850161448e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061450a826135f5565b9150614515836135f5565b925082821015614528576145276144d0565b5b828203905092915050565b600061453e826135f5565b9150614549836135f5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561457e5761457d6144d0565b5b828201905092915050565b7f43726f776473616c653a20616c72656164792065786973747300000000000000600082015250565b60006145bf60198361427e565b91506145ca82614589565b602082019050919050565b600060208201905081810360008301526145ee816145b2565b9050919050565b7f43726f776473616c653a207a65726f5f70726963650000000000000000000000600082015250565b600061462b60158361427e565b9150614636826145f5565b602082019050919050565b6000602082019050818103600083015261465a8161461e565b9050919050565b7f43726f776473616c653a207a65726f5f61646472657373000000000000000000600082015250565b600061469760178361427e565b91506146a282614661565b602082019050919050565b600060208201905081810360008301526146c68161468a565b9050919050565b60006080820190506146e2600083018761366b565b6146ef602083018661366b565b6146fc6040830185613a0c565b6147096060830184613a0c565b95945050505050565b60008160601b9050919050565b600061472a82614712565b9050919050565b600061473c8261471f565b9050919050565b61475461474f8261374b565b614731565b82525050565b6000819050919050565b614775614770826135f5565b61475a565b82525050565b60008160f81b9050919050565b60006147938261477b565b9050919050565b60006147a582614788565b9050919050565b6147bd6147b8826137c2565b61479a565b82525050565b60006147cf8288614743565b6014820191506147df8287614743565b6014820191506147ef8286614743565b6014820191506147ff8285614764565b60208201915061480f82846147ac565b6001820191508190509695505050505050565b7f5465616d3a207a65726f5f616464726573730000000000000000000000000000600082015250565b600061485860128361427e565b915061486382614822565b602082019050919050565b600060208201905081810360008301526148878161484b565b9050919050565b7f5369676e65723a207a65726f5f61646472657373000000000000000000000000600082015250565b60006148c460148361427e565b91506148cf8261488e565b602082019050919050565b600060208201905081810360008301526148f3816148b7565b9050919050565b7f41646d696e3a207a65726f206164647265737300000000000000000000000000600082015250565b600061493060138361427e565b915061493b826148fa565b602082019050919050565b6000602082019050818103600083015261495f81614923565b9050919050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b60006149c260298361427e565b91506149cd82614966565b604082019050919050565b600060208201905081810360008301526149f1816149b5565b9050919050565b7f43726f776473616c653a20696e76616c696420696e7075740000000000000000600082015250565b6000614a2e60188361427e565b9150614a39826149f8565b602082019050919050565b60006020820190508181036000830152614a5d81614a21565b9050919050565b614a6d816135f5565b82525050565b614a7c8161374b565b82525050565b60e082016000820151614a986000850182614a64565b506020820151614aab6020850182614a73565b506040820151614abe6040850182614a64565b506060820151614ad16060850182614a64565b506080820151614ae46080850182614a64565b5060a0820151614af760a0850182614a64565b5060c0820151614b0a60c0850182614a73565b50505050565b600082825260208201905092915050565b6000819050919050565b6000614b378383614a73565b60208301905092915050565b6000614b526020840184613774565b905092915050565b6000602082019050919050565b6000614b738385614b10565b9350614b7e82614b21565b8060005b85811015614bb757614b948284614b43565b614b9e8882614b2b565b9750614ba983614b5a565b925050600181019050614b82565b5085925050509392505050565b600082825260208201905092915050565b600080fd5b6000614be68385614bc4565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115614c1957614c18614bd5565b5b602083029250614c2a838584613835565b82840190509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614c70578082015181840152602081019050614c55565b83811115614c7f576000848401525b50505050565b6000614c9082614c36565b614c9a8185614c41565b9350614caa818560208601614c52565b614cb38161369a565b840191505092915050565b600061014082019050614cd46000830189614a82565b81810360e0830152614ce7818789614b67565b9050818103610100830152614cfd818587614bda565b9050818103610120830152614d128184614c85565b9050979650505050505050565b600081519050614d2e816137ce565b92915050565b600060208284031215614d4a57614d496135eb565b5b6000614d5884828501614d1f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000608082019050614da5600083018761366b565b614db2602083018661366b565b614dbf604083018561366b565b614dcc6060830184613a0c565b95945050505050565b6000614de0826135f5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e1257614e116144d0565b5b600182019050919050565b60006080820190508181036000830152614e3881888a614b67565b90508181036020830152614e4d818688614bda565b9050614e5c6040830185613a0c565b614e69606083018461366b565b979650505050505050565b600081519050614e8381613796565b92915050565b600060208284031215614e9f57614e9e6135eb565b5b6000614ead84828501614e74565b91505092915050565b60008160011c9050919050565b6000808291508390505b6001851115614f0d57808604811115614ee957614ee86144d0565b5b6001851615614ef85780820291505b8081029050614f0685614eb6565b9450614ecd565b94509492505050565b600082614f265760019050614fe2565b81614f345760009050614fe2565b8160018114614f4a5760028114614f5457614f83565b6001915050614fe2565b60ff841115614f6657614f656144d0565b5b8360020a915084821115614f7d57614f7c6144d0565b5b50614fe2565b5060208310610133831016604e8410600b8410161715614fb85782820a905083811115614fb357614fb26144d0565b5b614fe2565b614fc58484846001614ec3565b92509050818404811115614fdc57614fdb6144d0565b5b81810290505b9392505050565b6000614ff4826135f5565b9150614fff83613789565b925061502c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f16565b905092915050565b600061503f826135f5565b915061504a836135f5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615083576150826144d0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150c8826135f5565b91506150d3836135f5565b9250826150e3576150e261508e565b5b828204905092915050565b6000815190506150fd8161375d565b92915050565b600060208284031215615119576151186135eb565b5b6000615127848285016150ee565b91505092915050565b60006040820190506151456000830185613a0c565b6151526020830184613b75565b9392505050565b600060208201905061516e600083018461407a565b92915050565b7f52656465656d3a207a65726f5f61646472657373000000000000000000000000600082015250565b60006151aa60148361427e565b91506151b582615174565b602082019050919050565b600060208201905081810360008301526151d98161519d565b9050919050565b7f43726f776473616c653a206e6f7420696e2070726573616c6520706861736500600082015250565b6000615216601f8361427e565b9150615221826151e0565b602082019050919050565b6000602082019050818103600083015261524581615209565b9050919050565b7f43726f776473616c653a206e6f742077686974656c6973746564000000000000600082015250565b6000615282601a8361427e565b915061528d8261524c565b602082019050919050565b600060208201905081810360008301526152b181615275565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006152ee60208361427e565b91506152f9826152b8565b602082019050919050565b6000602082019050818103600083015261531d816152e1565b9050919050565b7f43726f776473616c653a206e6f74206163636570742065746865720000000000600082015250565b600061535a601b8361427e565b915061536582615324565b602082019050919050565b600060208201905081810360008301526153898161534d565b9050919050565b600061539b82613789565b91506153a683613789565b9250828210156153b9576153b86144d0565b5b828203905092915050565b60006040820190506153d96000830185613a0c565b6153e6602083018461366b565b9392505050565b600069ffffffffffffffffffff82169050919050565b61540c816153ed565b811461541757600080fd5b50565b60008151905061542981615403565b92915050565b6000819050919050565b6154428161542f565b811461544d57600080fd5b50565b60008151905061545f81615439565b92915050565b600080600080600060a08688031215615481576154806135eb565b5b600061548f8882890161541a565b95505060206154a088828901615450565b94505060406154b18882890161448e565b93505060606154c28882890161448e565b92505060806154d38882890161541a565b9150509295509295909350565b7f6e65676174697665207072696365000000000000000000000000000000000000600082015250565b6000615516600e8361427e565b9150615521826154e0565b602082019050919050565b6000602082019050818103600083015261554581615509565b9050919050565b7f5061796d656e743a206e6f7420656e6f7567682066756e64732073656e740000600082015250565b6000615582601e8361427e565b915061558d8261554c565b602082019050919050565b600060208201905081810360008301526155b181615575565b9050919050565b60006060820190506155cd6000830186613a0c565b6155da6020830185613a0c565b6155e7604083018461366b565b949350505050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b600061562560188361427e565b9150615630826155ef565b602082019050919050565b6000602082019050818103600083015261565481615618565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000615691601f8361427e565b915061569c8261565b565b602082019050919050565b600060208201905081810360008301526156c081615684565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061572360228361427e565b915061572e826156c7565b604082019050919050565b6000602082019050818103600083015261575281615716565b9050919050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006157b5602a8361427e565b91506157c082615759565b604082019050919050565b600060208201905081810360008301526157e4816157a8565b9050919050565b6000819050919050565b6157fe816157eb565b82525050565b61580d81613789565b82525050565b600060808201905061582860008301876157f5565b6158356020830186615804565b61584260408301856157f5565b61584f60608301846157f5565b95945050505050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006158b460268361427e565b91506158bf82615858565b604082019050919050565b600060208201905081810360008301526158e3816158a7565b9050919050565b600081905092915050565b600061590082614c36565b61590a81856158ea565b935061591a818560208601614c52565b80840191505092915050565b600061593282846158f5565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000615973601d8361427e565b915061597e8261593d565b602082019050919050565b600060208201905081810360008301526159a281615966565b9050919050565b600081519050919050565b60006159bf826159a9565b6159c9818561427e565b93506159d9818560208601614c52565b6159e28161369a565b840191505092915050565b60006020820190508181036000830152615a0781846159b4565b90509291505056fea2646970667358221220f4b234f0375295af3fdbcfafca4f0997b11089799dcedc5e15918c564225456d64736f6c634300080f0033000000000000000000000000ea4febb9fac2ee42167f41e05bce3a4f636ce494000000000000000000000000e24ac21ca418873357bdffb3ab9318cb6d07ef780000000000000000000000001eddae1c6248317d41601b5c1a9d7dae7c71e1fa000000000000000000000000b628d2272498d394ec956d0d3579976e3ff5fa1e