60806040523480156200001157600080fd5b50620000226200002860201b60201c565b6200019c565b60006200003a6200013260201b60201c565b90508060000160089054906101000a900460ff161562000086576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff80168160000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146200012f5767ffffffffffffffff8160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516200012691906200017f565b60405180910390a15b50565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b600067ffffffffffffffff82169050919050565b62000179816200015a565b82525050565b60006020820190506200019660008301846200016e565b92915050565b615d5c80620001ac6000396000f3fe60806040526004361061026b5760003560e01c8063715018a611610144578063bbe10773116100b6578063ddff28c21161007a578063ddff28c21461098d578063dee01b05146109b6578063e3643a03146109e1578063e757c70d14610a1e578063e985e9c514610a49578063f2fde38b14610a86576102a2565b8063bbe1077314610894578063c87b56dd146108bf578063cb3e4929146108fc578063d351b5fd14610927578063d5be3e6914610950576102a2565b80638db13532116101085780638db135321461078357806395d89b41146107ac578063a22cb465146107d7578063b4f039fb14610800578063b88d4fde14610840578063bb68509314610869576102a2565b8063715018a6146106bb57806371df13da146106d25780637ef2fc08146106e95780638751f4971461072d5780638da5cb5b14610758576102a2565b8063355a2c86116101dd5780634fa1f7ae116101a15780634fa1f7ae146105a857806356a4a8a9146105c45780636352211e146105ed5780636a18ff451461062a57806370a0823114610655578063710d08cb14610692576102a2565b8063355a2c86146104ac5780633875501d146104d557806339fc45371461051957806342842e0e146105425780634f6ccce71461056b576102a2565b806318160ddd1161022f57806318160ddd1461039e5780631cc7acfd146103c957806320d3e0e01461040657806323b872dd1461042f5780632f187fb0146104585780632f745c591461046f576102a2565b806301ffc9a7146102a757806303502f37146102e457806306fdde031461030d578063081812fc14610338578063095ea7b314610375576102a2565b366102a2576040517fd54bbd6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080fd5b3480156102b357600080fd5b506102ce60048036038101906102c99190614a5a565b610aaf565b6040516102db9190614aa2565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190614b51565b610ac1565b005b34801561031957600080fd5b50610322610c04565b60405161032f9190614c21565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190614c43565b610ca5565b60405161036c9190614c7f565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190614b51565b610cc1565b005b3480156103aa57600080fd5b506103b3610cd7565b6040516103c09190614ca9565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb9190614cc4565b610cf2565b6040516103fd9190614ca9565b60405180910390f35b34801561041257600080fd5b5061042d60048036038101906104289190614b51565b610d27565b005b34801561043b57600080fd5b5061045660048036038101906104519190614d17565b610e04565b005b34801561046457600080fd5b5061046d610f06565b005b34801561047b57600080fd5b5061049660048036038101906104919190614b51565b6111d6565b6040516104a39190614ca9565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce9190614d96565b61128d565b005b3480156104e157600080fd5b506104fc60048036038101906104f79190614dd6565b61137d565b604051610510989796959493929190614e03565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b9190614c43565b6113c5565b005b34801561054e57600080fd5b5061056960048036038101906105649190614d17565b6113ea565b005b34801561057757600080fd5b50610592600480360381019061058d9190614c43565b61140a565b60405161059f9190614ca9565b60405180910390f35b6105c260048036038101906105bd9190614fb6565b61148e565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190614b51565b611c02565b005b3480156105f957600080fd5b50610614600480360381019061060f9190614c43565b611cf1565b6040516106219190614c7f565b60405180910390f35b34801561063657600080fd5b5061063f611d03565b60405161064c919061508d565b60405180910390f35b34801561066157600080fd5b5061067c60048036038101906106779190614dd6565b611d29565b6040516106899190614ca9565b60405180910390f35b34801561069e57600080fd5b506106b960048036038101906106b491906150a8565b611df2565b005b3480156106c757600080fd5b506106d06122f1565b005b3480156106de57600080fd5b506106e7612305565b005b3480156106f557600080fd5b50610710600480360381019061070b9190614dd6565b6125aa565b60405161072498979695949392919061510f565b60405180910390f35b34801561073957600080fd5b506107426125ff565b60405161074f91906151ae565b60405180910390f35b34801561076457600080fd5b5061076d612625565b60405161077a9190614c7f565b60405180910390f35b34801561078f57600080fd5b506107aa60048036038101906107a591906151c9565b61265d565b005b3480156107b857600080fd5b506107c1612675565b6040516107ce9190614c21565b60405180910390f35b3480156107e357600080fd5b506107fe60048036038101906107f99190614d96565b612716565b005b34801561080c57600080fd5b5061082760048036038101906108229190614dd6565b61272c565b6040516108379493929190615238565b60405180910390f35b34801561084c57600080fd5b506108676004803603810190610862919061531e565b61285a565b005b34801561087557600080fd5b5061087e612877565b60405161088b9190614ca9565b60405180910390f35b3480156108a057600080fd5b506108a961287d565b6040516108b69190614c7f565b60405180910390f35b3480156108cb57600080fd5b506108e660048036038101906108e19190614c43565b6128a3565b6040516108f39190614c21565b60405180910390f35b34801561090857600080fd5b5061091161299c565b60405161091e91906153c2565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190614dd6565b6129c2565b005b34801561095c57600080fd5b5061097760048036038101906109729190614b51565b612a0e565b6040516109849190614ca9565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190614b51565b612a33565b005b3480156109c257600080fd5b506109cb612c11565b6040516109d89190614c7f565b60405180910390f35b3480156109ed57600080fd5b50610a086004803603810190610a039190614c43565b612c37565b604051610a159190614ca9565b60405180910390f35b348015610a2a57600080fd5b50610a33612c52565b604051610a409190614c7f565b60405180910390f35b348015610a5557600080fd5b50610a706004803603810190610a6b91906153dd565b612c78565b604051610a7d9190614aa2565b60405180910390f35b348015610a9257600080fd5b50610aad6004803603810190610aa89190614dd6565b612d1a565b005b6000610aba82612da0565b9050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b5357336040517fdb03f035000000000000000000000000000000000000000000000000000000008152600401610b4a9190614c7f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050181905550601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008281526020019081526020016000206000815480929190610bfb9061544c565b91905055505050565b60606000610c10612e1a565b9050806000018054610c21906154c3565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4d906154c3565b8015610c9a5780601f10610c6f57610100808354040283529160200191610c9a565b820191906000526020600020905b815481529060010190602001808311610c7d57829003601f168201915b505050505091505090565b6000610cb082612e42565b50610cba82612eca565b9050919050565b610cd38282610cce612f15565b612f1d565b5050565b600080610ce2612f2f565b9050806002018054905091505090565b60166020528260005260406000206020528160005260406000208160048110610d1a57600080fd5b0160009250925050505481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610db957336040517fabfd417b000000000000000000000000000000000000000000000000000000008152600401610db09190614c7f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e765760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610e6d9190614c7f565b60405180910390fd5b6000610e8a8383610e85612f15565b612f57565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f00578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610ef7939291906154f4565b60405180910390fd5b50505050565b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cece8d60601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501546040518263ffffffff1660e01b8152600401610fed9190614ca9565b600060405180830381865afa15801561100a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061103391906155b0565b91509150601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154821161110157601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154826040517f59c5590b0000000000000000000000000000000000000000000000000000000081526004016110f892919061560c565b60405180910390fd5b8060106000858152602001908152602001600020908161112191906157d7565b50600060018361113191906158a9565b60098110611142576111416158dd565b5b0154601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555081601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550505050565b6000806111e1612f2f565b90506111ec84611d29565b83106112315783836040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161122892919061590c565b60405180910390fd5b8060000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000205491505092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461131f57336040517fdb03f0350000000000000000000000000000000000000000000000000000000081526004016113169190614c7f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff0219169083151502179055505050565b60136020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154908060070154905088565b6113cd61329f565b670de0b6b3a7640000816113e19190615935565b60098190555050565b6114058383836040518060200160405280600081525061285a565b505050565b600080611415612f2f565b905061141f610cd7565b8310611465576000836040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161145c92919061590c565b60405180910390fd5b80600201838154811061147b5761147a6158dd565b5b9060005260206000200154915050919050565b61149733613326565b156114d957336040517f963ceef90000000000000000000000000000000000000000000000000000000081526004016114d09190614c7f565b60405180910390fd5b60006114e433611d29565b111561153157336114f433611d29565b6040517f6ecf963f00000000000000000000000000000000000000000000000000000000815260040161152892919061590c565b60405180910390fd5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e42c5e9611579610cd7565b6040518263ffffffff1660e01b81526004016115959190614ca9565b602060405180830381865afa1580156115b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d69190615977565b9050600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9d71fef856040518263ffffffff1660e01b815260040161164b9190614c21565b602060405180830381865afa158015611668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168c91906159b9565b73ffffffffffffffffffffffffffffffffffffffff16146116b7576002816116b49190615a15565b90505b8034146116fd5734816040517f0e5a2edb0000000000000000000000000000000000000000000000000000000081526004016116f492919061560c565b60405180910390fd5b60006064600a543461170f9190615935565b6117199190615a15565b90506000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395a7cba2336040518263ffffffff1660e01b81526004016117789190614c7f565b600060405180830381865afa158015611795573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906117be9190615a46565b9050600081510361185957600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663562524bb33866040518363ffffffff1660e01b8152600401611826929190615a8f565b600060405180830381600087803b15801561184057600080fd5b505af1158015611854573d6000803e3d6000fd5b505050505b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c395c8af6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156118c9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118f291906155b0565b9150915061190133828461333f565b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9d71fef896040518263ffffffff1660e01b81526004016119749190614c21565b602060405180830381865afa158015611991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b591906159b9565b73ffffffffffffffffffffffffffffffffffffffff1614611b49576000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9d71fef896040518263ffffffff1660e01b8152600401611a2d9190614c21565b602060405180830381865afa158015611a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6e91906159b9565b9050601360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000815480929190611ac39061544c565b9190505550611ade81600287611ad99190615a15565b613497565b600285611aeb9190615a15565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006016000828254611b3c9190615abf565b9250508190555050611bf0565b611bef600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a5ece9416040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdd91906159b9565b600286611bea9190615a15565b613497565b5b611bf93461354c565b50505050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c9457336040517f7e34585d000000000000000000000000000000000000000000000000000000008152600401611c8b9190614c7f565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016000828254611ce69190615abf565b925050819055505050565b6000611cfc82612e42565b9050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611d34612e1a565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611da85760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401611d9f9190614c7f565b60405180910390fd5b8060030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e8457336040517fdb03f035000000000000000000000000000000000000000000000000000000008152600401611e7b9190614c7f565b60405180910390fd5b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154148015611ed65750600183145b15611f3457601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000815480929190611f2e9061544c565b91905055505b8115611f9357601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000815480929190611f8d9061544c565b91905055505b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015414158015612028575082601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015414155b8015612032575081155b156121ea57601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600081548092919061208a9061544c565b91905055506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae21f08a836040518263ffffffff1660e01b81526004016120ec9190614ca9565b602060405180830381865afa158015612109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212d9190615977565b9050601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154670de0b6b3a7640000826121869190615935565b6121909190615935565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070160008282546121e19190615abf565b92505081905550505b6004601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015414801561223c5750600083145b8015612246575081155b156122a457601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600081548092919061229e9061544c565b91905055505b82601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555050505050565b6122f961329f565b6123036000613645565b565b6000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070154905060095481101561239757806009546040517f97c07c1000000000000000000000000000000000000000000000000000000000815260040161238e92919061560c565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016123f49190614c7f565b602060405180830381865afa158015612411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124359190615977565b905081811161247d5780826040517f379b047400000000000000000000000000000000000000000000000000000000815260040161247492919061560c565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070160009055600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b815260040161252092919061590c565b6020604051808303816000875af115801561253f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125639190615b08565b6125a65733826040517f27d94ab900000000000000000000000000000000000000000000000000000000815260040161259d92919061590c565b60405180910390fd5b5050565b60126020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040160009054906101000a900460ff16908060050154908060060154908060070154905088565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061263061371c565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61266561329f565b61267083838361333f565b505050565b60606000612681612e1a565b9050806001018054612692906154c3565b80601f01602080910402602001604051908101604052809291908181526020018280546126be906154c3565b801561270b5780601f106126e05761010080835404028352916020019161270b565b820191906000526020600020905b8154815290600101906020018083116126ee57829003601f168201915b505050505091505090565b612728612721612f15565b8383613744565b5050565b600080600080601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900460ff16601260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005015493509350935093509193509193565b612865848484610e04565b612871848484846138c2565b50505050565b60095481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606128ae82612e42565b5060006010600084815260200190815260200160002080546128cf906154c3565b80601f01602080910402602001604051908101604052809291908181526020018280546128fb906154c3565b80156129485780601f1061291d57610100808354040283529160200191612948565b820191906000526020600020905b81548152906001019060200180831161292b57829003601f168201915b5050505050905060008151111561298a57612961613a79565b81604051602001612973929190615b71565b604051602081830303815290604052915050612997565b61299383613a99565b9150505b919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6129ca61329f565b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6011602052816000526040600020602052806000526040600020600091509150505481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ac557336040517fdb03f035000000000000000000000000000000000000000000000000000000008152600401612abc9190614c7f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555060008114612c0d5780601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015481526020019081526020016000206001601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154612bf691906158a9565b60048110612c0757612c066158dd565b5b01819055505b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008160098110612c4757600080fd5b016000915090505481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080612c83612e1a565b90508060050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691505092915050565b612d2261329f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d945760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612d8b9190614c7f565b60405180910390fd5b612d9d81613645565b50565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612e135750612e1282613b02565b5b9050919050565b60007f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300905090565b600080612e4e83613be4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ec157826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612eb89190614ca9565b60405180910390fd5b80915050919050565b600080612ed5612e1a565b905080600401600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b600033905090565b612f2a8383836001613c2f565b505050565b60007f645e039705490088daad89bae25049a34f4a9072d398537b1ab2425f24cbed00905090565b600080612f6385611d29565b14612faf5783612f7285611d29565b6040517f6ecf963f000000000000000000000000000000000000000000000000000000008152600401612fa692919061590c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614613285576000612fee84611cf1565b90506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154146130bb5780601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546040517f0738eef00000000000000000000000000000000000000000000000000000000081526004016130b292919061590c565b60405180910390fd5b601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015481600001556001820154816001015560028201548160020155600382015481600301556004820160009054906101000a900460ff168160040160006101000a81548160ff021916908315150217905550600582015481600501556006820154816006015560078201548160070155905050601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160009055601260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808201600090556001820160009055600282016000905560038201600090556004820160006101000a81549060ff02191690556005820160009055600682016000905560078201600090555050505b6000613292858585613e03565b9050809150509392505050565b6132a7612f15565b73ffffffffffffffffffffffffffffffffffffffff166132c5612625565b73ffffffffffffffffffffffffffffffffffffffff1614613324576132e8612f15565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161331b9190614c7f565b60405180910390fd5b565b600080823b905060008163ffffffff1611915050919050565b6000600161334b610cd7565b6133559190615abf565b90506133618482613f20565b8260106000838152602001908152602001600020908161338191906157d7565b50600060405180610100016040528083815260200142815260200160008152602001600081526020016000151581526020016000815260200184815260200160006001866133cf91906158a9565b600981106133e0576133df6158dd565b5b0154815250905080601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555060a0820151816005015560c0820151816006015560e082015181600701559050505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16826040516134bd90615bc6565b60006040518083038185875af1925050503d80600081146134fa576040519150601f19603f3d011682016040523d82523d6000602084013e6134ff565b606091505b50509050806135475782826040517f9752b31d00000000000000000000000000000000000000000000000000000000815260040161353e92919061590c565b60405180910390fd5b505050565b6135fe600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633cf96af16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e091906159b9565b6064600a846135ef9190615935565b6135f99190615a15565b613497565b613642600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646050846136339190615935565b61363d9190615a15565b613497565b50565b600061364f61371c565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b600061374e612e1a565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137c157826040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016137b89190614c7f565b60405180910390fd5b818160050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31846040516138b49190614aa2565b60405180910390a350505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115613a73578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02613906612f15565b8685856040518563ffffffff1660e01b81526004016139289493929190615c30565b6020604051808303816000875af192505050801561396457506040513d601f19601f820116820180604052508101906139619190615c91565b60015b6139e8573d8060008114613994576040519150601f19603f3d011682016040523d82523d6000602084013e613999565b606091505b5060008151036139e057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016139d79190614c7f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614613a7157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401613a689190614c7f565b60405180910390fd5b505b50505050565b6060604051806060016040528060398152602001615cee60399139905090565b6060613aa482612e42565b506000613aaf613a79565b90506000815111613acf5760405180602001604052806000815250613afa565b80613ad984613f3e565b604051602001613aea929190615b71565b6040516020818303038152906040525b915050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613bcd57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613bdd5750613bdc8261400c565b5b9050919050565b600080613bef612e1a565b905080600201600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000613c39612e1a565b90508180613c745750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15613da8576000613c8485612e42565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015613cef57508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015613d025750613d008185612c78565b155b15613d4457836040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401613d3b9190614c7f565b60405180910390fd5b8215613da657848673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8481600401600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b600080613e11858585614076565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613e5557613e50846142a3565b613e94565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613e9357613e9281856142ff565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603613ed657613ed184614479565b613f15565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613f1457613f138585614565565b5b5b809150509392505050565b613f3a828260405180602001604052806000815250614601565b5050565b606060006001613f4d8461461d565b01905060008167ffffffffffffffff811115613f6c57613f6b614e8b565b5b6040519080825280601f01601f191660200182016040528015613f9e5781602001600182028036833780820191505090505b509050600082602001820190505b600115614001578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581613ff557613ff46159e6565b5b04945060008503613fac575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600080614081612e1a565b9050600061408e85613be4565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146140d0576140cf818587614770565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461416357614112600086600080613c2f565b60018260030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146141e85760018260030160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8582600201600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480925050509392505050565b60006142ad612f2f565b9050806002018054905081600301600084815260200190815260200160002081905550806002018290806001815401808255809150506001900390600052602060002001600090919091909150555050565b6000614309612f2f565b9050600061431684611d29565b905060008260010160008581526020019081526020016000205490508181146144035760008360000160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050808460000160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020819055508184600101600083815260200190815260200160002081905550505b826001016000858152602001908152602001600020600090558260000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600090555050505050565b6000614483612f2f565b905060006001826002018054905061449b91906158a9565b9050600082600301600085815260200190815260200160002054905060008360020183815481106144cf576144ce6158dd565b5b90600052602060002001549050808460020183815481106144f3576144f26158dd565b5b90600052602060002001819055508184600301600083815260200190815260200160002081905550836003016000868152602001908152602001600020600090558360020180548061454857614547615cbe565b5b600190038181906000526020600020016000905590555050505050565b600061456f612f2f565b90506000600161457e85611d29565b61458891906158a9565b9050828260000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550808260010160008581526020019081526020016000208190555050505050565b61460b8383614834565b61461860008484846138c2565b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061467b577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381614671576146706159e6565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106146b8576d04ee2d6d415b85acef810000000083816146ae576146ad6159e6565b5b0492506020810190505b662386f26fc1000083106146e757662386f26fc1000083816146dd576146dc6159e6565b5b0492506010810190505b6305f5e1008310614710576305f5e1008381614706576147056159e6565b5b0492506008810190505b612710831061473557612710838161472b5761472a6159e6565b5b0492506004810190505b60648310614758576064838161474e5761474d6159e6565b5b0492506002810190505b600a8310614767576001810190505b80915050919050565b61477b83838361492d565b61482f57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036147f057806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016147e79190614ca9565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161482692919061590c565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036148a65760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161489d9190614c7f565b60405180910390fd5b60006148b483836000612f57565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146149285760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161491f9190614c7f565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156149e557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806149a657506149a58484612c78565b5b806149e457508273ffffffffffffffffffffffffffffffffffffffff166149cc83612eca565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614a3781614a02565b8114614a4257600080fd5b50565b600081359050614a5481614a2e565b92915050565b600060208284031215614a7057614a6f6149f8565b5b6000614a7e84828501614a45565b91505092915050565b60008115159050919050565b614a9c81614a87565b82525050565b6000602082019050614ab76000830184614a93565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614ae882614abd565b9050919050565b614af881614add565b8114614b0357600080fd5b50565b600081359050614b1581614aef565b92915050565b6000819050919050565b614b2e81614b1b565b8114614b3957600080fd5b50565b600081359050614b4b81614b25565b92915050565b60008060408385031215614b6857614b676149f8565b5b6000614b7685828601614b06565b9250506020614b8785828601614b3c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614bcb578082015181840152602081019050614bb0565b60008484015250505050565b6000601f19601f8301169050919050565b6000614bf382614b91565b614bfd8185614b9c565b9350614c0d818560208601614bad565b614c1681614bd7565b840191505092915050565b60006020820190508181036000830152614c3b8184614be8565b905092915050565b600060208284031215614c5957614c586149f8565b5b6000614c6784828501614b3c565b91505092915050565b614c7981614add565b82525050565b6000602082019050614c946000830184614c70565b92915050565b614ca381614b1b565b82525050565b6000602082019050614cbe6000830184614c9a565b92915050565b600080600060608486031215614cdd57614cdc6149f8565b5b6000614ceb86828701614b06565b9350506020614cfc86828701614b3c565b9250506040614d0d86828701614b3c565b9150509250925092565b600080600060608486031215614d3057614d2f6149f8565b5b6000614d3e86828701614b06565b9350506020614d4f86828701614b06565b9250506040614d6086828701614b3c565b9150509250925092565b614d7381614a87565b8114614d7e57600080fd5b50565b600081359050614d9081614d6a565b92915050565b60008060408385031215614dad57614dac6149f8565b5b6000614dbb85828601614b06565b9250506020614dcc85828601614d81565b9150509250929050565b600060208284031215614dec57614deb6149f8565b5b6000614dfa84828501614b06565b91505092915050565b600061010082019050614e19600083018b614c9a565b614e26602083018a614c9a565b614e336040830189614c9a565b614e406060830188614c9a565b614e4d6080830187614c9a565b614e5a60a0830186614c9a565b614e6760c0830185614c9a565b614e7460e0830184614c9a565b9998505050505050505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614ec382614bd7565b810181811067ffffffffffffffff82111715614ee257614ee1614e8b565b5b80604052505050565b6000614ef56149ee565b9050614f018282614eba565b919050565b600067ffffffffffffffff821115614f2157614f20614e8b565b5b614f2a82614bd7565b9050602081019050919050565b82818337600083830152505050565b6000614f59614f5484614f06565b614eeb565b905082815260208101848484011115614f7557614f74614e86565b5b614f80848285614f37565b509392505050565b600082601f830112614f9d57614f9c614e81565b5b8135614fad848260208601614f46565b91505092915050565b60008060408385031215614fcd57614fcc6149f8565b5b600083013567ffffffffffffffff811115614feb57614fea6149fd565b5b614ff785828601614f88565b925050602083013567ffffffffffffffff811115615018576150176149fd565b5b61502485828601614f88565b9150509250929050565b6000819050919050565b600061505361504e61504984614abd565b61502e565b614abd565b9050919050565b600061506582615038565b9050919050565b60006150778261505a565b9050919050565b6150878161506c565b82525050565b60006020820190506150a2600083018461507e565b92915050565b600080600080608085870312156150c2576150c16149f8565b5b60006150d087828801614b06565b94505060206150e187828801614b3c565b93505060406150f287828801614d81565b925050606061510387828801614b3c565b91505092959194509250565b600061010082019050615125600083018b614c9a565b615132602083018a614c9a565b61513f6040830189614c9a565b61514c6060830188614c9a565b6151596080830187614a93565b61516660a0830186614c9a565b61517360c0830185614c9a565b61518060e0830184614c9a565b9998505050505050505050565b60006151988261505a565b9050919050565b6151a88161518d565b82525050565b60006020820190506151c3600083018461519f565b92915050565b6000806000606084860312156151e2576151e16149f8565b5b60006151f086828701614b06565b935050602084013567ffffffffffffffff811115615211576152106149fd565b5b61521d86828701614f88565b925050604061522e86828701614b3c565b9150509250925092565b600060808201905061524d6000830187614c9a565b61525a6020830186614c9a565b6152676040830185614a93565b6152746060830184614c9a565b95945050505050565b600067ffffffffffffffff82111561529857615297614e8b565b5b6152a182614bd7565b9050602081019050919050565b60006152c16152bc8461527d565b614eeb565b9050828152602081018484840111156152dd576152dc614e86565b5b6152e8848285614f37565b509392505050565b600082601f83011261530557615304614e81565b5b81356153158482602086016152ae565b91505092915050565b60008060008060808587031215615338576153376149f8565b5b600061534687828801614b06565b945050602061535787828801614b06565b935050604061536887828801614b3c565b925050606085013567ffffffffffffffff811115615389576153886149fd565b5b615395878288016152f0565b91505092959194509250565b60006153ac8261505a565b9050919050565b6153bc816153a1565b82525050565b60006020820190506153d760008301846153b3565b92915050565b600080604083850312156153f4576153f36149f8565b5b600061540285828601614b06565b925050602061541385828601614b06565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061545782614b1b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036154895761548861541d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806154db57607f821691505b6020821081036154ee576154ed615494565b5b50919050565b60006060820190506155096000830186614c70565b6155166020830185614c9a565b6155236040830184614c70565b949350505050565b60008151905061553a81614b25565b92915050565b600061555361554e84614f06565b614eeb565b90508281526020810184848401111561556f5761556e614e86565b5b61557a848285614bad565b509392505050565b600082601f83011261559757615596614e81565b5b81516155a7848260208601615540565b91505092915050565b600080604083850312156155c7576155c66149f8565b5b60006155d58582860161552b565b925050602083015167ffffffffffffffff8111156155f6576155f56149fd565b5b61560285828601615582565b9150509250929050565b60006040820190506156216000830185614c9a565b61562e6020830184614c9a565b9392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026156977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261565a565b6156a1868361565a565b95508019841693508086168417925050509392505050565b60006156d46156cf6156ca84614b1b565b61502e565b614b1b565b9050919050565b6000819050919050565b6156ee836156b9565b6157026156fa826156db565b848454615667565b825550505050565b600090565b61571761570a565b6157228184846156e5565b505050565b5b818110156157465761573b60008261570f565b600181019050615728565b5050565b601f82111561578b5761575c81615635565b6157658461564a565b81016020851015615774578190505b6157886157808561564a565b830182615727565b50505b505050565b600082821c905092915050565b60006157ae60001984600802615790565b1980831691505092915050565b60006157c7838361579d565b9150826002028217905092915050565b6157e082614b91565b67ffffffffffffffff8111156157f9576157f8614e8b565b5b61580382546154c3565b61580e82828561574a565b600060209050601f831160018114615841576000841561582f578287015190505b61583985826157bb565b8655506158a1565b601f19841661584f86615635565b60005b8281101561587757848901518255600182019150602085019450602081019050615852565b868310156158945784890151615890601f89168261579d565b8355505b6001600288020188555050505b505050505050565b60006158b482614b1b565b91506158bf83614b1b565b92508282039050818111156158d7576158d661541d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040820190506159216000830185614c70565b61592e6020830184614c9a565b9392505050565b600061594082614b1b565b915061594b83614b1b565b925082820261595981614b1b565b915082820484148315176159705761596f61541d565b5b5092915050565b60006020828403121561598d5761598c6149f8565b5b600061599b8482850161552b565b91505092915050565b6000815190506159b381614aef565b92915050565b6000602082840312156159cf576159ce6149f8565b5b60006159dd848285016159a4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000615a2082614b1b565b9150615a2b83614b1b565b925082615a3b57615a3a6159e6565b5b828204905092915050565b600060208284031215615a5c57615a5b6149f8565b5b600082015167ffffffffffffffff811115615a7a57615a796149fd565b5b615a8684828501615582565b91505092915050565b6000604082019050615aa46000830185614c70565b8181036020830152615ab68184614be8565b90509392505050565b6000615aca82614b1b565b9150615ad583614b1b565b9250828201905080821115615aed57615aec61541d565b5b92915050565b600081519050615b0281614d6a565b92915050565b600060208284031215615b1e57615b1d6149f8565b5b6000615b2c84828501615af3565b91505092915050565b600081905092915050565b6000615b4b82614b91565b615b558185615b35565b9350615b65818560208601614bad565b80840191505092915050565b6000615b7d8285615b40565b9150615b898284615b40565b91508190509392505050565b600081905092915050565b50565b6000615bb0600083615b95565b9150615bbb82615ba0565b600082019050919050565b6000615bd182615ba3565b9150819050919050565b600081519050919050565b600082825260208201905092915050565b6000615c0282615bdb565b615c0c8185615be6565b9350615c1c818560208601614bad565b615c2581614bd7565b840191505092915050565b6000608082019050615c456000830187614c70565b615c526020830186614c70565b615c5f6040830185614c9a565b8181036060830152615c718184615bf7565b905095945050505050565b600081519050615c8b81614a2e565b92915050565b600060208284031215615ca757615ca66149f8565b5b6000615cb584828501615c7c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe68747470733a2f2f32373363633530386663326465306163633365316162383634373433663334332e6970667363646e2e696f2f697066732fa2646970667358221220950288339eb77ce7d519b84dc83e1921da295e79b477c8e4815ac2ee919a1a7964736f6c63430008140033