8 txs
9 calls
constructor
constructor(address _tokenStake, address _tokenRecompensa, uint256 _tiempoMinimo, uint256 _cantidadMinima, address[] _propietarios)
functions
calcularIntereses
viewfunction calcularIntereses(address _user, uint256 _indice) view returns (uint256)
calcularTasa
viewfunction calcularTasa() view returns (uint256)
cantidadStakes
viewfunction cantidadStakes(address _user) view returns (uint256)
confirmadoresPropuesta
viewfunction confirmadoresPropuesta(uint256, address) view returns (bool)
contadorPropuestas
viewfunction contadorPropuestas() view returns (uint256)
esPropietario
viewfunction esPropietario(address) view returns (bool)
historicoTasas
viewfunction historicoTasas(uint256) view returns (uint256 timestamp, uint256 tasa)
MIN_PROPIETARIOS
viewfunction MIN_PROPIETARIOS() view returns (uint8)
nonces
viewfunction nonces(address, uint256) view returns (bool)
noncesInicio
viewfunction noncesInicio(address, uint256) view returns (bool)
obtenerStake
viewfunction obtenerStake(address _user, uint256 _indice) view returns (tuple)
propietarios
viewfunction propietarios(uint256) view returns (address)
propuestas
viewfunction propuestas(uint256) view returns (address creador, uint8 tipo, address direccionAfectada, uint256 valorNumerico, uint8 confirmaciones, uint40 timestamp, bool ejecutada, address destino)
tasaActual
viewfunction tasaActual() view returns (uint256)
depositarRecompensas
nonpayablefunction depositarRecompensas(uint256 _cantidad)
ejecutarPropuesta
nonpayablefunction ejecutarPropuesta(uint256 _id)
finalizarMiStake
nonpayablefunction finalizarMiStake(uint256 _indice)
finalizarStakePorFirma
nonpayablefunction finalizarStakePorFirma(address _user, uint256 _indice, uint256 _nonce, bytes _signature)
iniciarStake
nonpayablefunction iniciarStake(uint256 _cantidad)
iniciarStakePorRelayer
nonpayablefunction iniciarStakePorRelayer(address _user, uint256 _cantidad, uint256 _deadline, uint8 v_permit, bytes32 r_permit, bytes32 s_permit, uint256 _nonce, bytes _firmaStake)
limpiarPropuesta
nonpayablefunction limpiarPropuesta(uint256 _id)
proponerAgregarPropietario
nonpayablefunction proponerAgregarPropietario(address _nuevoPropietario)
proponerCambiarPlazoMinimo
nonpayablefunction proponerCambiarPlazoMinimo(uint256 _nuevoPlazo)
proponerCambiarTokenRecompensa
nonpayablefunction proponerCambiarTokenRecompensa(address _nuevoToken)
proponerCambiarTokenStake
nonpayablefunction proponerCambiarTokenStake(address _nuevoToken)
proponerEliminarPropietario
nonpayablefunction proponerEliminarPropietario(address _propietario)
proponerFinalizarStakeSeguro
nonpayablefunction proponerFinalizarStakeSeguro(address _user, uint256 _indice, address _destino)
proponerRetirarRecompensas
nonpayablefunction proponerRetirarRecompensas(uint256 _monto, address _destino)
proponerRetirarStakeTokens
nonpayablefunction proponerRetirarStakeTokens(uint256 _monto, address _destino)
votarPropuesta
nonpayablefunction votarPropuesta(uint256 _id)
events
PlazoMinimoCambiado
event PlazoMinimoCambiado(uint256 nuevoPlazo)
PropietarioAgregado
event PropietarioAgregado(address indexed nuevoPropietario)
PropietarioEliminado
event PropietarioEliminado(address indexed propietarioEliminado)
PropuestaCaducada
event PropuestaCaducada(uint256 indexed id)
PropuestaConfirmada
event PropuestaConfirmada(uint256 indexed id, address indexed votante)
PropuestaCreada
event PropuestaCreada(uint256 indexed id, address indexed creador, uint8 tipo, address direccionAfectada, uint256 valorNumerico)
PropuestaEjecutada
event PropuestaEjecutada(uint256 indexed id, address indexed ejecutor)
RecompensasDepositadas
event RecompensasDepositadas(uint256 cantidad)
RecompensasRetiradas
event RecompensasRetiradas(uint256 cantidad, address destino)
StakeFinalizado
event StakeFinalizado(address indexed usuario, address destino, uint256 cantidad, uint256 intereses, uint256 indice)
StakeIniciado
event StakeIniciado(address indexed usuario, uint256 cantidad, uint256 indice)
StakeTokensRetirados
event StakeTokensRetirados(uint256 cantidad, address destino)
TasaActualizada
event TasaActualizada(uint256 tasa, uint256 timestamp)
TokenRecompensaCambiado
event TokenRecompensaCambiado(address nuevoTokenRecompensa)
TokenStakeCambiado
event TokenStakeCambiado(address nuevoTokenStake)
errors
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608060405234801561000f575f5ffd5b50604051615ce0380380615ce083398181016040528101906100319190610719565b600360ff1681511015610079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161007090610806565b60405180910390fd5b5f5f90505b81518160ff16101561026a575f828260ff16815181106100a1576100a0610824565b5b602002602001015190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101109061089b565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156101a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019a90610903565b60405180910390fd5b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806102629061095a565b91505061007e565b508460035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260058190555081600681905550600160028190555061030f6103ad60201b60201c565b60078190555060086040518060400160405280428152602001600754815250908060018154018082558091505060019003905f5260205f2090600202015f909190919091505f820151815f01556020820151816001015550507f3cb6685fcb7249092411f19ff77b057c9d3a78ef837ca851d8abeb622c4808946007544260405161039b929190610991565b60405180910390a15050505050610aa9565b5f5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161040991906109c7565b602060405180830381865afa158015610424573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044891906109e0565b90505f810361045a575f915050610528565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b591906109c7565b602060405180830381865afa1580156104d0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f491906109e0565b90505f826064836105059190610a0b565b61050f9190610a79565b90506064811161051f5780610522565b60645b93505050505b90565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105658261053c565b9050919050565b6105758161055b565b811461057f575f5ffd5b50565b5f815190506105908161056c565b92915050565b5f819050919050565b6105a881610596565b81146105b2575f5ffd5b50565b5f815190506105c38161059f565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610613826105cd565b810181811067ffffffffffffffff82111715610632576106316105dd565b5b80604052505050565b5f61064461052b565b9050610650828261060a565b919050565b5f67ffffffffffffffff82111561066f5761066e6105dd565b5b602082029050602081019050919050565b5f5ffd5b5f61069661069184610655565b61063b565b905080838252602082019050602084028301858111156106b9576106b8610680565b5b835b818110156106e257806106ce8882610582565b8452602084019350506020810190506106bb565b5050509392505050565b5f82601f830112610700576106ff6105c9565b5b8151610710848260208601610684565b91505092915050565b5f5f5f5f5f60a0868803121561073257610731610534565b5b5f61073f88828901610582565b955050602061075088828901610582565b9450506040610761888289016105b5565b9350506060610772888289016105b5565b925050608086015167ffffffffffffffff81111561079357610792610538565b5b61079f888289016106ec565b9150509295509295909350565b5f82825260208201905092915050565b7f4d696e696d6f20332070726f706965746172696f7300000000000000000000005f82015250565b5f6107f06015836107ac565b91506107fb826107bc565b602082019050919050565b5f6020820190508181035f83015261081d816107e4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f446972656363696f6e20696e76616c69646100000000000000000000000000005f82015250565b5f6108856012836107ac565b915061089082610851565b602082019050919050565b5f6020820190508181035f8301526108b281610879565b9050919050565b7f50726f706965746172696f206475706c696361646f00000000000000000000005f82015250565b5f6108ed6015836107ac565b91506108f8826108b9565b602082019050919050565b5f6020820190508181035f83015261091a816108e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f60ff82169050919050565b5f6109648261094e565b915060ff820361097757610976610921565b5b600182019050919050565b61098b81610596565b82525050565b5f6040820190506109a45f830185610982565b6109b16020830184610982565b9392505050565b6109c18161055b565b82525050565b5f6020820190506109da5f8301846109b8565b92915050565b5f602082840312156109f5576109f4610534565b5b5f610a02848285016105b5565b91505092915050565b5f610a1582610596565b9150610a2083610596565b9250828202610a2e81610596565b91508282048414831517610a4557610a44610921565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610a8382610596565b9150610a8e83610596565b925082610a9e57610a9d610a4c565b5b828204905092915050565b61522a80610ab65f395ff3fe608060405234801561000f575f5ffd5b50600436106101d8575f3560e01c8063502e1a1611610102578063be8df5b6116100a0578063e282a8051161006f578063e282a8051461058a578063eee31e88146105a8578063f82dabca146105c4578063fff21093146105e0576101d8565b8063be8df5b6146104f2578063bf2b5e7514610522578063c5e89c771461053e578063d368d78c1461056e576101d8565b80636097e216116100dc5780636097e21614610453578063776f4d761461048a57806393c45366146104a6578063ad35605b146104d6576101d8565b8063502e1a16146103e957806350b759b41461041957806354b2638c14610437576101d8565b8063253016181161017a5780633a094319116101495780633a094319146103775780633ff45e8e146103935780634caef50a146103af5780634ed6200b146103cd576101d8565b806325301618146102de57806326d14a38146102fa5780632b717c0b1461031657806335af6ae814610347576101d8565b806317b51219116101b657806317b51219146102325780631e2e5c51146102625780631f0adc321461027e5780632429183d146102ae576101d8565b80630668192d146101dc5780630fb0df87146101f8578063129dd3e814610216575b5f5ffd5b6101f660048036038101906101f19190613c69565b6105fc565b005b610200610695565b60405161020d9190613caf565b60405180910390f35b610230600480360381019061022b9190613cfb565b61069a565b005b61024c60048036038101906102479190613d39565b610776565b6040516102599190613df3565b60405180910390f35b61027c60048036038101906102779190613e0c565b6108a5565b005b61029860048036038101906102939190613c69565b610aa8565b6040516102a59190613e6b565b60405180910390f35b6102c860048036038101906102c39190613cfb565b610af1565b6040516102d59190613e93565b60405180910390f35b6102f860048036038101906102f39190613eac565b610b1b565b005b610314600480360381019061030f9190613c69565b610d6b565b005b610330600480360381019061032b9190613eac565b610efc565b60405161033e929190613ed7565b60405180910390f35b610361600480360381019061035c9190613d39565b610f2b565b60405161036e9190613e93565b60405180910390f35b610391600480360381019061038c919061403a565b610f55565b005b6103ad60048036038101906103a89190613eac565b61120d565b005b6103b761152a565b6040516103c49190613e6b565b60405180910390f35b6103e760048036038101906103e29190613eac565b611530565b005b61040360048036038101906103fe9190613d39565b6115c0565b6040516104109190613e93565b60405180910390f35b6104216115ea565b60405161042e9190613e6b565b60405180910390f35b610451600480360381019061044c9190613eac565b611768565b005b61046d60048036038101906104689190613eac565b6119d6565b6040516104819897969594939291906140e8565b60405180910390f35b6104a4600480360381019061049f9190613eac565b611aae565b005b6104c060048036038101906104bb9190613d39565b611b0f565b6040516104cd9190613e6b565b60405180910390f35b6104f060048036038101906104eb9190613cfb565b611cbf565b005b61050c60048036038101906105079190613c69565b611d9b565b6040516105199190613e93565b60405180910390f35b61053c60048036038101906105379190613c69565b611db8565b005b61055860048036038101906105539190613eac565b611f24565b6040516105659190614164565b60405180910390f35b610588600480360381019061058391906141da565b611f5e565b005b61059261241a565b60405161059f9190613e6b565b60405180910390f35b6105c260048036038101906105bd9190613c69565b612420565b005b6105de60048036038101906105d99190613eac565b6124b9565b005b6105fa60048036038101906105f59190613eac565b612594565b005b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90614301565b60405180910390fd5b6106926006825f5f612781565b50565b600381565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a90614301565b60405180910390fd5b5f8211610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075c90614369565b60405180910390fd5b610772600482845f612781565b5050565b61077e613bd8565b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508210610800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f7906143d1565b60405180910390fd5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20828154811061084f5761084e6143ef565b5b905f5260205f2090600402016040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015f9054906101000a900460ff161515151581525050905092915050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661092e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092590614301565b60405180910390fd5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905082106109b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a7906143d1565b60405180910390fd5b5f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110610a00576109ff6143ef565b5b905f5260205f2090600402016040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015f9054906101000a900460ff1615151515815250509050806060015115610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90614466565b60405180910390fd5b610aa26003858585612781565b50505050565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490509050919050565b600b602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b6002805403610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906144ce565b60405180910390fd5b60028081905550600654811015610bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba290614536565b60405180910390fd5b610bf933308360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a5c909392919063ffffffff16565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060405180608001604052804281526020018381526020015f81526020015f1515815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff0219169083151502179055505050610cc4612ade565b3373ffffffffffffffffffffffffffffffffffffffff167fa71eef8c3504c826a61a75aae215013ad17a2a42a3ed754b2ecfd6a00aea175282600160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610d4a9190614581565b604051610d58929190613ed7565b60405180910390a2600160028190555050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90614301565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e59906145fe565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390614666565b60405180910390fd5b610ef96001825f5f612781565b50565b60088181548110610f0b575f80fd5b905f5260205f2090600202015f91509050805f0154908060010154905082565b600d602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b6002805403610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f90906144ce565b60405180910390fd5b6002808190555060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508310611022576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611019906143d1565b60405180910390fd5b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f9054906101000a900460ff16156110bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b2906146ce565b60405180910390fd5b5f84308585466040516020016110d5959493929190614751565b6040516020818303038152906040528051906020012090505f816040516020016110ff9190614823565b6040516020818303038152906040528051906020012090508573ffffffffffffffffffffffffffffffffffffffff166111388285612b8d565b73ffffffffffffffffffffffffffffffffffffffff161461118e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118590614892565b60405180910390fd5b6001600c5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111fd868688612bf7565b5050600160028190555050505050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128d90614301565b60405180910390fd5b600e5481106112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d1906148fa565b60405180910390fd5b5f600a5f8381526020019081526020015f2090508060030160069054906101000a900460ff1615611340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133790614962565b60405180910390fd5b620151808160030160019054906101000a900464ffffffffff166113649190614980565b64ffffffffff164211156113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490614a02565b60405180910390fd5b600b5f8381526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611446576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143d90614a6a565b60405180910390fd5b6001600b5f8481526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001816003015f8282829054906101000a900460ff166114ca9190614a88565b92506101000a81548160ff021916908360ff1602179055503373ffffffffffffffffffffffffffffffffffffffff16827f6b9a473d8cdfb2c4d26206aeb1c9031cbb772d924d5fa1e66a65e9f107fe5d6160405160405180910390a35050565b60075481565b61157e33308360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a5c909392919063ffffffff16565b611586612ade565b7ff20eee77e59136d8e132734c70e8c738f31edfcfe7a535357c8781c52e463e37816040516115b59190613e6b565b60405180910390a150565b600c602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b5f5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116469190614164565b602060405180830381865afa158015611661573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116859190614ad0565b90505f8103611697575f915050611765565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116f29190614164565b602060405180830381865afa15801561170d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117319190614ad0565b90505f826064836117429190614afb565b61174c9190614b69565b90506064811161175c578061175f565b60645b93505050505b90565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890614301565b60405180910390fd5b600e548110611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c906148fa565b60405180910390fd5b5f600a5f8381526020019081526020015f2090508060030160069054906101000a900460ff161561189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290614962565b60405180910390fd5b620151808160030160019054906101000a900464ffffffffff166118bf9190614980565b64ffffffffff16421115611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90614a02565b60405180910390fd5b611910612ea3565b60ff16816003015f9054906101000a900460ff1660ff161015611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f90614be3565b60405180910390fd5b60018160030160066101000a81548160ff02191690831515021790555061198e82612ec6565b3373ffffffffffffffffffffffffffffffffffffffff16827f34ead3092188f6dd0c0e377fc72036d20bfdf31baaddc41d43a92cb77861d71560405160405180910390a35050565b600a602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900460ff1690806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806002015490806003015f9054906101000a900460ff16908060030160019054906101000a900464ffffffffff16908060030160069054906101000a900460ff16908060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905088565b6002805403611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae9906144ce565b60405180910390fd5b60028081905550611b04338233612bf7565b600160028190555050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508210611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b89906143d1565b60405180910390fd5b5f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110611be257611be16143ef565b5b905f5260205f2090600402016040518060800160405290815f82015481526020016001820154815260200160028201548152602001600382015f9054906101000a900460ff1615151515815250509050806060015115611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e90614c4b565b60405180910390fd5b5f815f015142611c879190614581565b905063bbf81e00816007548460200151611ca19190614afb565b611cab9190614afb565b611cb59190614b69565b9250505092915050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3f90614301565b60405180910390fd5b5f8211611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8190614369565b60405180910390fd5b611d97600882845f612781565b5050565b6001602052805f5260405f205f915054906101000a900460ff1681565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3890614301565b60405180910390fd5b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec190614cb3565b60405180910390fd5b600360ff165f8054905011611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b90614d1b565b60405180910390fd5b611f216002825f5f612781565b50565b5f8181548110611f32575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002805403611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f99906144ce565b60405180910390fd5b60028081905550600654871015611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe590614536565b60405180910390fd5b600d5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f9054906101000a900460ff1615612087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207e906146ce565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d505accf89308a8a8a8a8a6040518863ffffffff1660e01b81526004016120ed9796959493929190614d48565b5f604051808303815f87803b158015612104575f5ffd5b505af1158015612116573d5f5f3e3d5ffd5b505050505f8830898546604051602001612134959493929190614751565b6040516020818303038152906040528051906020012090505f8160405160200161215e9190614823565b6040516020818303038152906040528051906020012090508973ffffffffffffffffffffffffffffffffffffffff166121978285612b8d565b73ffffffffffffffffffffffffffffffffffffffff16146121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e490614892565b60405180910390fd5b6001600d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f205f6101000a81548160ff02191690831515021790555061229f8a308b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a5c909392919063ffffffff16565b60095f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060405180608001604052804281526020018b81526020015f81526020015f1515815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff021916908315150217905550505061236a612ade565b8973ffffffffffffffffffffffffffffffffffffffff167fa71eef8c3504c826a61a75aae215013ad17a2a42a3ed754b2ecfd6a00aea17528a600160095f8f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490506123f09190614581565b6040516123fe929190613ed7565b60405180910390a2505060016002819055505050505050505050565b600e5481565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a090614301565b60405180910390fd5b6124b66005825f5f612781565b50565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253990614301565b60405180910390fd5b5f8111612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90614dff565b60405180910390fd5b61259160075f835f612781565b50565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661261d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261490614301565b60405180910390fd5b600e548110612661576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612658906148fa565b60405180910390fd5b5f600a5f8381526020019081526020015f2090508060030160069054906101000a900460ff16156126c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126be90614962565b60405180910390fd5b620151808160030160019054906101000a900464ffffffffff166126eb9190614980565b64ffffffffff164211612733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272a90614e67565b60405180910390fd5b60018160030160066101000a81548160ff021916908315150217905550817fb041fdff7bae79379e87f88fa03488f14d5971cf97d7ab015bbb2ec3141f03bb60405160405180910390a25050565b5f600e5f81548092919061279490614e85565b9190505590506040518061010001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018660ff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001600160ff1681526020014264ffffffffff1681526020015f151581526020018373ffffffffffffffffffffffffffffffffffffffff16815250600a5f8381526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548160ff021916908360ff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600201556080820151816003015f6101000a81548160ff021916908360ff16021790555060a08201518160030160016101000a81548164ffffffffff021916908364ffffffffff16021790555060c08201518160030160066101000a81548160ff02191690831515021790555060e08201518160030160076101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600b5f8381526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16817fdf94f3ab3b138abc7e6129b23362255bebd3e48a16651f2301f7d806f1e962d5878787604051612a4d93929190614ecc565b60405180910390a35050505050565b612ad8848573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401612a9193929190614f01565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506132c9565b50505050565b5f612ae76115ea565b90506007548103612af85750612b8b565b806007819055506008604051806040016040528042815260200183815250908060018154018082558091505060019003905f5260205f2090600202015f909190919091505f820151815f01556020820151816001015550507f3cb6685fcb7249092411f19ff77b057c9d3a78ef837ca851d8abeb622c4808948142604051612b81929190613ed7565b60405180910390a1505b565b5f5f5f5f612b9a856133a5565b9250925092506001868285856040515f8152602001604052604051612bc29493929190614f36565b6020604051602081039080840390855afa158015612be2573d5f5f3e3d5ffd5b50505060206040510351935050505092915050565b5f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110612c4757612c466143ef565b5b905f5260205f2090600402019050806003015f9054906101000a900460ff1615612ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9d90614466565b60405180910390fd5b5f5f9050600554825f015442612cbc9190614581565b10612cce57612ccb8585611b0f565b90505b6001826003015f6101000a81548160ff0219169083151502179055508082600201819055508473ffffffffffffffffffffffffffffffffffffffff167f46f449c0252002d75c7be381bfb5b6a8b5d5e2b43a93ca30871853854f8aed5c8484600101548488604051612d439493929190614f79565b60405180910390a2612d9b83836001015460035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661340a9092919063ffffffff16565b612da3612ade565b5f81118015612e4a57508060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612e089190614164565b602060405180830381865afa158015612e23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e479190614ad0565b10155b15612e9c57612e9b838260045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661340a9092919063ffffffff16565b5b5050505050565b5f600160025f80549050612eb79190614fbc565b612ec19190614a88565b905090565b5f600a5f8381526020019081526020015f209050600160ff16815f0160149054906101000a900460ff1660ff1603612f2957612f24816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613489565b6132c5565b600260ff16815f0160149054906101000a900460ff1660ff1603612f7857612f73816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661360c565b6132c4565b600360ff16815f0160149054906101000a900460ff1660ff1603612ff157612fec816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600201548360030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612bf7565b6132c3565b600460ff16815f0160149054906101000a900460ff1660ff1603613045576130408160020154826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613908565b6132c2565b600860ff16815f0160149054906101000a900460ff1660ff1603613099576130948160020154826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613a74565b6132c1565b600560ff16815f0160149054906101000a900460ff1660ff160361317957806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f27f1eca9c5ae0d5400bd1205428fb05f8cc5dd934c236155676b86ecfe4bc73f816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161316c9190614164565b60405180910390a16132c0565b600660ff16815f0160149054906101000a900460ff1660ff160361325957806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f30b802b190ff6fc2079c45a9e4c61150c937544c4c54ae45a49eecf675eca50e816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161324c9190614164565b60405180910390a16132bf565b600760ff16815f0160149054906101000a900460ff1660ff16036132be5780600201546005819055507f029f215d619dde936621c22eae3530deea5ced9041e3e24c356fd8c1b6523a9181600201546040516132b59190613e6b565b60405180910390a15b5b5b5b5b5b5b5b5050565b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516132f0919061503e565b5f604051808303815f865af19150503d805f8114613329576040519150601f19603f3d011682016040523d82523d5f602084013e61332e565b606091505b509150915081158061335d57505f815111801561335c57508080602001905181019061335a919061507e565b155b5b1561339f57836040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016133969190614164565b60405180910390fd5b50505050565b5f5f5f60418451146133ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e3906150f3565b60405180910390fd5b602084015192506040840151915060608401515f1a90509193909250565b613484838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858560405160240161343d929190615111565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506132c9565b505050565b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350a90614666565b60405180910390fd5b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f913240b5956eddddfa96348c122c687fa5a9f2317e9d3079989088ddb20ffbc060405160405180910390a250565b60015f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16613695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368c90614cb3565b60405180910390fd5b600360ff165f80549050116136df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136d690614d1b565b60405180910390fd5b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f5f90505b5f805490508110156138c1578173ffffffffffffffffffffffffffffffffffffffff165f828154811061376e5761376d6143ef565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036138b45760015f805490506137c29190614581565b811461386c575f60015f805490506137da9190614581565b815481106137eb576137ea6143ef565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f8281548110613826576138256143ef565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5f80548061387d5761387c615138565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556138c1565b8080600101915050613738565b508073ffffffffffffffffffffffffffffffffffffffff167f2224b4fb176175716dc5f841b9ebc479288b0f841a37fbd8f7dae80a410994ef60405160405180910390a250565b8160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016139639190614164565b602060405180830381865afa15801561397e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139a29190614ad0565b10156139e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139da906151af565b60405180910390fd5b613a2f818360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661340a9092919063ffffffff16565b613a37612ade565b7f751c0075b6c76ee4e70b440385a42af38a64389bf4884366b7049678429072298282604051613a689291906151cd565b60405180910390a15050565b8160035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613acf9190614164565b602060405180830381865afa158015613aea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b0e9190614ad0565b1015613b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b46906151af565b60405180910390fd5b613b9b818360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661340a9092919063ffffffff16565b7fe2e93a7a9efeb50966e63885a7bc208c6ad5a1543d6d806c8302494bc571df2c8282604051613bcc9291906151cd565b60405180910390a15050565b60405180608001604052805f81526020015f81526020015f81526020015f151581525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613c3882613c0f565b9050919050565b613c4881613c2e565b8114613c52575f5ffd5b50565b5f81359050613c6381613c3f565b92915050565b5f60208284031215613c7e57613c7d613c07565b5b5f613c8b84828501613c55565b91505092915050565b5f60ff82169050919050565b613ca981613c94565b82525050565b5f602082019050613cc25f830184613ca0565b92915050565b5f819050919050565b613cda81613cc8565b8114613ce4575f5ffd5b50565b5f81359050613cf581613cd1565b92915050565b5f5f60408385031215613d1157613d10613c07565b5b5f613d1e85828601613ce7565b9250506020613d2f85828601613c55565b9150509250929050565b5f5f60408385031215613d4f57613d4e613c07565b5b5f613d5c85828601613c55565b9250506020613d6d85828601613ce7565b9150509250929050565b613d8081613cc8565b82525050565b5f8115159050919050565b613d9a81613d86565b82525050565b608082015f820151613db45f850182613d77565b506020820151613dc76020850182613d77565b506040820151613dda6040850182613d77565b506060820151613ded6060850182613d91565b50505050565b5f608082019050613e065f830184613da0565b92915050565b5f5f5f60608486031215613e2357613e22613c07565b5b5f613e3086828701613c55565b9350506020613e4186828701613ce7565b9250506040613e5286828701613c55565b9150509250925092565b613e6581613cc8565b82525050565b5f602082019050613e7e5f830184613e5c565b92915050565b613e8d81613d86565b82525050565b5f602082019050613ea65f830184613e84565b92915050565b5f60208284031215613ec157613ec0613c07565b5b5f613ece84828501613ce7565b91505092915050565b5f604082019050613eea5f830185613e5c565b613ef76020830184613e5c565b9392505050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613f4c82613f06565b810181811067ffffffffffffffff82111715613f6b57613f6a613f16565b5b80604052505050565b5f613f7d613bfe565b9050613f898282613f43565b919050565b5f67ffffffffffffffff821115613fa857613fa7613f16565b5b613fb182613f06565b9050602081019050919050565b828183375f83830152505050565b5f613fde613fd984613f8e565b613f74565b905082815260208101848484011115613ffa57613ff9613f02565b5b614005848285613fbe565b509392505050565b5f82601f83011261402157614020613efe565b5b8135614031848260208601613fcc565b91505092915050565b5f5f5f5f6080858703121561405257614051613c07565b5b5f61405f87828801613c55565b945050602061407087828801613ce7565b935050604061408187828801613ce7565b925050606085013567ffffffffffffffff8111156140a2576140a1613c0b565b5b6140ae8782880161400d565b91505092959194509250565b6140c381613c2e565b82525050565b5f64ffffffffff82169050919050565b6140e2816140c9565b82525050565b5f610100820190506140fc5f83018b6140ba565b614109602083018a613ca0565b61411660408301896140ba565b6141236060830188613e5c565b6141306080830187613ca0565b61413d60a08301866140d9565b61414a60c0830185613e84565b61415760e08301846140ba565b9998505050505050505050565b5f6020820190506141775f8301846140ba565b92915050565b61418681613c94565b8114614190575f5ffd5b50565b5f813590506141a18161417d565b92915050565b5f819050919050565b6141b9816141a7565b81146141c3575f5ffd5b50565b5f813590506141d4816141b0565b92915050565b5f5f5f5f5f5f5f5f610100898b0312156141f7576141f6613c07565b5b5f6142048b828c01613c55565b98505060206142158b828c01613ce7565b97505060406142268b828c01613ce7565b96505060606142378b828c01614193565b95505060806142488b828c016141c6565b94505060a06142598b828c016141c6565b93505060c061426a8b828c01613ce7565b92505060e089013567ffffffffffffffff81111561428b5761428a613c0b565b5b6142978b828c0161400d565b9150509295985092959890939650565b5f82825260208201905092915050565b7f536f6c6f2070726f706965746172696f730000000000000000000000000000005f82015250565b5f6142eb6011836142a7565b91506142f6826142b7565b602082019050919050565b5f6020820190508181035f830152614318816142df565b9050919050565b7f4d6f6e746f20696e76616c69646f0000000000000000000000000000000000005f82015250565b5f614353600e836142a7565b915061435e8261431f565b602082019050919050565b5f6020820190508181035f83015261438081614347565b9050919050565b7f496e6469636520696e76616c69646f00000000000000000000000000000000005f82015250565b5f6143bb600f836142a7565b91506143c682614387565b602082019050919050565b5f6020820190508181035f8301526143e8816143af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f5374616b652079612066696e616c697a61646f000000000000000000000000005f82015250565b5f6144506013836142a7565b915061445b8261441c565b602082019050919050565b5f6020820190508181035f83015261447d81614444565b9050919050565b7f5265656e7472616e6369612064657465637461646100000000000000000000005f82015250565b5f6144b86015836142a7565b91506144c382614484565b602082019050919050565b5f6020820190508181035f8301526144e5816144ac565b9050919050565b7f43616e7469646164206d696e696d61206e6f20616c63616e7a616461000000005f82015250565b5f614520601c836142a7565b915061452b826144ec565b602082019050919050565b5f6020820190508181035f83015261454d81614514565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61458b82613cc8565b915061459683613cc8565b92508282039050818111156145ae576145ad614554565b5b92915050565b7f446972656363696f6e20696e76616c69646100000000000000000000000000005f82015250565b5f6145e86012836142a7565b91506145f3826145b4565b602082019050919050565b5f6020820190508181035f830152614615816145dc565b9050919050565b7f59612065732070726f706965746172696f0000000000000000000000000000005f82015250565b5f6146506011836142a7565b915061465b8261461c565b602082019050919050565b5f6020820190508181035f83015261467d81614644565b9050919050565b7f4e6f6e636520796120757361646f0000000000000000000000000000000000005f82015250565b5f6146b8600e836142a7565b91506146c382614684565b602082019050919050565b5f6020820190508181035f8301526146e5816146ac565b9050919050565b5f8160601b9050919050565b5f614702826146ec565b9050919050565b5f614713826146f8565b9050919050565b61472b61472682613c2e565b614709565b82525050565b5f819050919050565b61474b61474682613cc8565b614731565b82525050565b5f61475c828861471a565b60148201915061476c828761471a565b60148201915061477c828661473a565b60208201915061478c828561473a565b60208201915061479c828461473a565b6020820191508190509695505050505050565b5f81905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f82015250565b5f6147ed601c836147af565b91506147f8826147b9565b601c82019050919050565b5f819050919050565b61481d614818826141a7565b614803565b82525050565b5f61482d826147e1565b9150614839828461480c565b60208201915081905092915050565b7f4669726d6120696e76616c6964610000000000000000000000000000000000005f82015250565b5f61487c600e836142a7565b915061488782614848565b602082019050919050565b5f6020820190508181035f8301526148a981614870565b9050919050565b7f50726f707565737461206e6f20657869737465000000000000000000000000005f82015250565b5f6148e46013836142a7565b91506148ef826148b0565b602082019050919050565b5f6020820190508181035f830152614911816148d8565b9050919050565b7f50726f70756573746120796120656a65637574616461000000000000000000005f82015250565b5f61494c6016836142a7565b915061495782614918565b602082019050919050565b5f6020820190508181035f83015261497981614940565b9050919050565b5f61498a826140c9565b9150614995836140c9565b9250828201905064ffffffffff8111156149b2576149b1614554565b5b92915050565b7f50726f70756573746120636164756361646100000000000000000000000000005f82015250565b5f6149ec6012836142a7565b91506149f7826149b8565b602082019050919050565b5f6020820190508181035f830152614a19816149e0565b9050919050565b7f59612068617320766f7461646f000000000000000000000000000000000000005f82015250565b5f614a54600d836142a7565b9150614a5f82614a20565b602082019050919050565b5f6020820190508181035f830152614a8181614a48565b9050919050565b5f614a9282613c94565b9150614a9d83613c94565b9250828201905060ff811115614ab657614ab5614554565b5b92915050565b5f81519050614aca81613cd1565b92915050565b5f60208284031215614ae557614ae4613c07565b5b5f614af284828501614abc565b91505092915050565b5f614b0582613cc8565b9150614b1083613cc8565b9250828202614b1e81613cc8565b91508282048414831517614b3557614b34614554565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614b7382613cc8565b9150614b7e83613cc8565b925082614b8e57614b8d614b3c565b5b828204905092915050565b7f4e6f20736520686120616c63616e7a61646f20656c20756d6272616c000000005f82015250565b5f614bcd601c836142a7565b9150614bd882614b99565b602082019050919050565b5f6020820190508181035f830152614bfa81614bc1565b9050919050565b7f5374616b652066696e616c697a61646f000000000000000000000000000000005f82015250565b5f614c356010836142a7565b9150614c4082614c01565b602082019050919050565b5f6020820190508181035f830152614c6281614c29565b9050919050565b7f4e6f2065732070726f706965746172696f0000000000000000000000000000005f82015250565b5f614c9d6011836142a7565b9150614ca882614c69565b602082019050919050565b5f6020820190508181035f830152614cca81614c91565b9050919050565b7f4e6f20736520707565646520656c696d696e61720000000000000000000000005f82015250565b5f614d056014836142a7565b9150614d1082614cd1565b602082019050919050565b5f6020820190508181035f830152614d3281614cf9565b9050919050565b614d42816141a7565b82525050565b5f60e082019050614d5b5f83018a6140ba565b614d6860208301896140ba565b614d756040830188613e5c565b614d826060830187613e5c565b614d8f6080830186613ca0565b614d9c60a0830185614d39565b614da960c0830184614d39565b98975050505050505050565b7f506c617a6f20696e76616c69646f0000000000000000000000000000000000005f82015250565b5f614de9600e836142a7565b9150614df482614db5565b602082019050919050565b5f6020820190508181035f830152614e1681614ddd565b9050919050565b7f50726f7075657374612061756e20656e20706572696f646f00000000000000005f82015250565b5f614e516018836142a7565b9150614e5c82614e1d565b602082019050919050565b5f6020820190508181035f830152614e7e81614e45565b9050919050565b5f614e8f82613cc8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614ec157614ec0614554565b5b600182019050919050565b5f606082019050614edf5f830186613ca0565b614eec60208301856140ba565b614ef96040830184613e5c565b949350505050565b5f606082019050614f145f8301866140ba565b614f2160208301856140ba565b614f2e6040830184613e5c565b949350505050565b5f608082019050614f495f830187614d39565b614f566020830186613ca0565b614f636040830185614d39565b614f706060830184614d39565b95945050505050565b5f608082019050614f8c5f8301876140ba565b614f996020830186613e5c565b614fa66040830185613e5c565b614fb36060830184613e5c565b95945050505050565b5f614fc682613c94565b9150614fd183613c94565b925082614fe157614fe0614b3c565b5b828204905092915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f61501882614fec565b6150228185614ff6565b9350615032818560208601615000565b80840191505092915050565b5f615049828461500e565b915081905092915050565b61505d81613d86565b8114615067575f5ffd5b50565b5f8151905061507881615054565b92915050565b5f6020828403121561509357615092613c07565b5b5f6150a08482850161506a565b91505092915050565b7f496e76616c6964207369676e6174757265206c656e67746800000000000000005f82015250565b5f6150dd6018836142a7565b91506150e8826150a9565b602082019050919050565b5f6020820190508181035f83015261510a816150d1565b9050919050565b5f6040820190506151245f8301856140ba565b6151316020830184613e5c565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f53616c646f20696e737566696369656e746500000000000000000000000000005f82015250565b5f6151996012836142a7565b91506151a482615165565b602082019050919050565b5f6020820190508181035f8301526151c68161518d565b9050919050565b5f6040820190506151e05f830185613e5c565b6151ed60208301846140ba565b939250505056fea26469706673582212209c63fa57352bb8c713be678fbadd39a7796e06721114729d94d61e9cbe3a8d3b64736f6c634300081c003300000000000000000000000080e0dfe47b2caa9c13915931d50347a1ef350912000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000000000000000000000000000000000000013c680000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000030000000000000000000000004dd0780061c28be55b7f9b422c85d4079093d7c2000000000000000000000000f91739210a88dacc2ed6156f728eeeabb8488c5d00000000000000000000000079584e0fe04a36faa2dc85cf6e0fadd411fb856b