60806040526064690ec247c19d058a049a006200001d91906200069d565b6004556000600555600060065560006007556000600a60146101000a81548160ff021916908315150217905550690ec247c19d058a049a00600d553480156200006557600080fd5b5060405162003ef238038062003ef283398181016040528101906200008b9190620005b9565b6200009b6200057160201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000ea6200057160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620001b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ae906200064d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000221906200064d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200029d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000294906200064d565b60405180910390fd5b82600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550690ec247c19d058a049a00600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003c46200057960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004f76200057960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef690ec247c19d058a049a006040516200056091906200066f565b60405180910390a35050506200078a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620005b38162000770565b92915050565b600080600060608486031215620005d557620005d462000742565b5b6000620005e586828701620005a2565b9350506020620005f886828701620005a2565b92505060406200060b86828701620005a2565b9150509250925092565b6000620006246016836200068c565b9150620006318262000747565b602082019050919050565b620006478162000709565b82525050565b60006020820190508181036000830152620006688162000615565b9050919050565b60006020820190506200068660008301846200063c565b92915050565b600082825260208201905092915050565b6000620006aa8262000709565b9150620006b78362000709565b925082620006ca57620006c962000713565b5b828204905092915050565b6000620006e282620006e9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b7f5a65726f206164647265737320657863657074696f6e00000000000000000000600082015250565b6200077b81620006d5565b81146200078757600080fd5b50565b613758806200079a6000396000f3fe6080604052600436106101235760003560e01c80638ce2193b116100a0578063c3c8cd8011610064578063c3c8cd80146103e0578063c9567bf9146103f7578063dd62ed3e1461040e578063f2fde38b1461044b578063f7448a31146104745761012a565b80638ce2193b146102fb5780638da5cb5b1461032457806395d89b411461034f578063a9059cbb1461037a578063b9a45aac146103b75761012a565b80633af32abf116100e75780633af32abf1461022a5780636fc3eaec1461026757806370a082311461027e578063770bc38b146102bb578063886da46a146102d25761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061014461049d565b6040516101519190612d34565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c919061274a565b6104da565b60405161018e9190612d19565b60405180910390f35b3480156101a357600080fd5b506101ac6104f8565b6040516101b99190612f76565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e491906126b7565b61050a565b6040516101f69190612d19565b60405180910390f35b34801561020b57600080fd5b506102146105e3565b6040516102219190612feb565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c91906125ca565b6105ec565b60405161025e9190612d19565b60405180910390f35b34801561027357600080fd5b5061027c610642565b005b34801561028a57600080fd5b506102a560048036038101906102a091906125ca565b6106e3565b6040516102b29190612f76565b60405180910390f35b3480156102c757600080fd5b506102d061072c565b005b3480156102de57600080fd5b506102f960048036038101906102f49190612824565b6108b6565b005b34801561030757600080fd5b50610322600480360381019061031d9190612624565b6109a7565b005b34801561033057600080fd5b50610339610c4f565b6040516103469190612c22565b60405180910390f35b34801561035b57600080fd5b50610364610c78565b6040516103719190612d34565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c919061274a565b610cb5565b6040516103ae9190612d19565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d9919061270a565b610cd3565b005b3480156103ec57600080fd5b506103f5610dbe565b005b34801561040357600080fd5b5061040c610e67565b005b34801561041a57600080fd5b5061043560048036038101906104309190612677565b6113e3565b6040516104429190612f76565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d91906125ca565b61146a565b005b34801561048057600080fd5b5061049b600480360381019061049691906127b7565b6115bc565b005b60606040518060400160405280600481526020017f4665666500000000000000000000000000000000000000000000000000000000815250905090565b60006104ee6104e7611840565b8484611848565b6001905092915050565b6000690ec247c19d058a049a00905090565b6000610517848484611a13565b6105d884610523611840565b6105d3856040518060600160405280602881526020016136fb60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610589611840565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd39092919063ffffffff16565b611848565b600190509392505050565b60006009905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c990612e16565b60405180910390fd5b60004790506106e081611e37565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610734611840565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612eb6565b60405180910390fd5b600c60149054906101000a900460ff16610810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080790612d76565b60405180910390fd5b690ec247c19d058a049a00600d81905550690ec247c19d058a049a006004819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf690ec247c19d058a049a0060405161086b9190612f76565b60405180910390a17f9a67c283449381e8ee7fa29c87cef05ccedd0faaff767bf879b02d34290fdc7b690ec247c19d058a049a006040516108ac9190612f76565b60405180910390a1565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90612e56565b60405180910390fd5b6003821080156109565750600381105b610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c90612d56565b60405180910390fd5b81600581905550806006819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2e90612e16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e90612e96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0e90612e96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e90612e96565b60405180910390fd5b82600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4645464500000000000000000000000000000000000000000000000000000000815250905090565b6000610cc9610cc2611840565b8484611a13565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90612e16565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4590612e16565b60405180910390fd5b6000610e59306106e3565b9050610e6481611f99565b50565b610e6f611840565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390612eb6565b60405180910390fd5b600c60149054906101000a900460ff1615610f4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4390612f36565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fdd30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16690ec247c19d058a049a00611848565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105b91906125f7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110bd57600080fd5b505afa1580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f591906125f7565b6040518363ffffffff1660e01b8152600401611112929190612c66565b602060405180830381600087803b15801561112c57600080fd5b505af1158015611140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116491906125f7565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111ed306106e3565b6000806111f8610c4f565b426040518863ffffffff1660e01b815260040161121a96959493929190612cb8565b6060604051808303818588803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061126c9190612864565b5050506103e86045690ec247c19d058a049a0061128991906130e2565b61129391906130b1565b600d819055506103e86045690ec247c19d058a049a006112b391906130e2565b6112bd91906130b1565b600481905550601460058190555060146006819055506001600c60146101000a81548160ff021916908315150217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161138d929190612c8f565b602060405180830381600087803b1580156113a757600080fd5b505af11580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df919061278a565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611472611840565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612eb6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461164c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164390612e16565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290612df6565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116f69190612c22565b60206040518083038186803b15801561170e57600080fd5b505afa158015611722573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174691906127f7565b90508082111561178b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178290612e76565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016117e8929190612c3d565b602060405180830381600087803b15801561180257600080fd5b505af1158015611816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183a919061278a565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90612f16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90612d96565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a069190612f76565b60405180910390a3505050565b60008111611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d90612ed6565b60405180910390fd5b80611a60846106e3565b1015611aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9890612ef6565b60405180910390fd5b6000600781905550600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b4a5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611dc357600c60159054906101000a900460ff1615611b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9590612dd6565b60405180910390fd5b600d54811115611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90612e36565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c915760045481611c45846106e3565b611c4f919061305b565b1115611c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8790612f56565b60405180910390fd5b5b60004790506706f05b59d3b20000811115611cb057611caf47611e37565b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d1457600554600781905550611dc1565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dc0576006546007819055506000611d7e306106e3565b9050600a60149054906101000a900460ff16611dbe576103e8690ec247c19d058a049a00611dac91906130b1565b811115611dbd57611dbc81611f99565b5b5b505b5b505b611dce838383612221565b505050565b6000838311158290611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e129190612d34565b60405180910390fd5b5060008385611e2a919061313c565b9050809150509392505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6005600384611e8291906130e2565b611e8c91906130b1565b9081150290604051600060405180830381858888f19350505050158015611eb7573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600583611f0191906130b1565b9081150290604051600060405180830381858888f19350505050158015611f2c573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611f95573d6000803e3d6000fd5b5050565b6001600a60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fd157611fd06132f1565b5b604051908082528060200260200182016040528015611fff5781602001602082028036833780820191505090505b5090503081600081518110612017576120166132c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120b957600080fd5b505afa1580156120cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f191906125f7565b81600181518110612105576121046132c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061216c30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611848565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121d0959493929190612f91565b600060405180830381600087803b1580156121ea57600080fd5b505af11580156121fe573d6000803e3d6000fd5b50505050506000600a60146101000a81548160ff02191690831515021790555050565b600060646007548361223391906130e2565b61223d91906130b1565b90506000818361224d919061313c565b90506122a183600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247a90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233681600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123cb82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c490919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161246b9190612f76565b60405180910390a35050505050565b60006124bc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dd3565b905092915050565b60008082846124d3919061305b565b905083811015612518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250f90612db6565b60405180910390fd5b8091505092915050565b60008135905061253181613687565b92915050565b60008151905061254681613687565b92915050565b60008135905061255b8161369e565b92915050565b600081359050612570816136b5565b92915050565b600081519050612585816136b5565b92915050565b60008135905061259a816136cc565b92915050565b6000813590506125af816136e3565b92915050565b6000815190506125c4816136e3565b92915050565b6000602082840312156125e0576125df613320565b5b60006125ee84828501612522565b91505092915050565b60006020828403121561260d5761260c613320565b5b600061261b84828501612537565b91505092915050565b60008060006060848603121561263d5761263c613320565b5b600061264b8682870161254c565b935050602061265c8682870161254c565b925050604061266d8682870161254c565b9150509250925092565b6000806040838503121561268e5761268d613320565b5b600061269c85828601612522565b92505060206126ad85828601612522565b9150509250929050565b6000806000606084860312156126d0576126cf613320565b5b60006126de86828701612522565b93505060206126ef86828701612522565b9250506040612700868287016125a0565b9150509250925092565b6000806040838503121561272157612720613320565b5b600061272f85828601612522565b925050602061274085828601612561565b9150509250929050565b6000806040838503121561276157612760613320565b5b600061276f85828601612522565b9250506020612780858286016125a0565b9150509250929050565b6000602082840312156127a05761279f613320565b5b60006127ae84828501612576565b91505092915050565b600080604083850312156127ce576127cd613320565b5b60006127dc8582860161258b565b92505060206127ed858286016125a0565b9150509250929050565b60006020828403121561280d5761280c613320565b5b600061281b848285016125b5565b91505092915050565b6000806040838503121561283b5761283a613320565b5b6000612849858286016125a0565b925050602061285a858286016125a0565b9150509250929050565b60008060006060848603121561287d5761287c613320565b5b600061288b868287016125b5565b935050602061289c868287016125b5565b92505060406128ad868287016125b5565b9150509250925092565b60006128c383836128de565b60208301905092915050565b6128d8816131e9565b82525050565b6128e781613170565b82525050565b6128f681613170565b82525050565b600061290782613016565b6129118185613039565b935061291c83613006565b8060005b8381101561294d57815161293488826128b7565b975061293f8361302c565b925050600181019050612920565b5085935050505092915050565b61296381613194565b82525050565b612972816131fb565b82525050565b600061298382613021565b61298d818561304a565b935061299d818560208601613231565b6129a681613325565b840191505092915050565b60006129be600c8361304a565b91506129c982613336565b602082019050919050565b60006129e1601a8361304a565b91506129ec8261335f565b602082019050919050565b6000612a0460228361304a565b9150612a0f82613388565b604082019050919050565b6000612a27601b8361304a565b9150612a32826133d7565b602082019050919050565b6000612a4a60118361304a565b9150612a5582613400565b602082019050919050565b6000612a6d60318361304a565b9150612a7882613429565b604082019050919050565b6000612a9060208361304a565b9150612a9b82613478565b602082019050919050565b6000612ab3601d8361304a565b9150612abe826134a1565b602082019050919050565b6000612ad6601f8361304a565b9150612ae1826134ca565b602082019050919050565b6000612af9600e8361304a565b9150612b04826134f3565b602082019050919050565b6000612b1c60168361304a565b9150612b278261351c565b602082019050919050565b6000612b3f60208361304a565b9150612b4a82613545565b602082019050919050565b6000612b6260298361304a565b9150612b6d8261356e565b604082019050919050565b6000612b85601a8361304a565b9150612b90826135bd565b602082019050919050565b6000612ba860248361304a565b9150612bb3826135e6565b604082019050919050565b6000612bcb60178361304a565b9150612bd682613635565b602082019050919050565b6000612bee60198361304a565b9150612bf98261365e565b602082019050919050565b612c0d816131d2565b82525050565b612c1c816131dc565b82525050565b6000602082019050612c3760008301846128ed565b92915050565b6000604082019050612c5260008301856128cf565b612c5f6020830184612c04565b9392505050565b6000604082019050612c7b60008301856128ed565b612c8860208301846128ed565b9392505050565b6000604082019050612ca460008301856128ed565b612cb16020830184612c04565b9392505050565b600060c082019050612ccd60008301896128ed565b612cda6020830188612c04565b612ce76040830187612969565b612cf46060830186612969565b612d0160808301856128ed565b612d0e60a0830184612c04565b979650505050505050565b6000602082019050612d2e600083018461295a565b92915050565b60006020820190508181036000830152612d4e8184612978565b905092915050565b60006020820190508181036000830152612d6f816129b1565b9050919050565b60006020820190508181036000830152612d8f816129d4565b9050919050565b60006020820190508181036000830152612daf816129f7565b9050919050565b60006020820190508181036000830152612dcf81612a1a565b9050919050565b60006020820190508181036000830152612def81612a3d565b9050919050565b60006020820190508181036000830152612e0f81612a60565b9050919050565b60006020820190508181036000830152612e2f81612a83565b9050919050565b60006020820190508181036000830152612e4f81612aa6565b9050919050565b60006020820190508181036000830152612e6f81612ac9565b9050919050565b60006020820190508181036000830152612e8f81612aec565b9050919050565b60006020820190508181036000830152612eaf81612b0f565b9050919050565b60006020820190508181036000830152612ecf81612b32565b9050919050565b60006020820190508181036000830152612eef81612b55565b9050919050565b60006020820190508181036000830152612f0f81612b78565b9050919050565b60006020820190508181036000830152612f2f81612b9b565b9050919050565b60006020820190508181036000830152612f4f81612bbe565b9050919050565b60006020820190508181036000830152612f6f81612be1565b9050919050565b6000602082019050612f8b6000830184612c04565b92915050565b600060a082019050612fa66000830188612c04565b612fb36020830187612969565b8181036040830152612fc581866128fc565b9050612fd460608301856128ed565b612fe16080830184612c04565b9695505050505050565b60006020820190506130006000830184612c13565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613066826131d2565b9150613071836131d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130a6576130a5613264565b5b828201905092915050565b60006130bc826131d2565b91506130c7836131d2565b9250826130d7576130d6613293565b5b828204905092915050565b60006130ed826131d2565b91506130f8836131d2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561313157613130613264565b5b828202905092915050565b6000613147826131d2565b9150613152836131d2565b92508282101561316557613164613264565b5b828203905092915050565b600061317b826131b2565b9050919050565b600061318d826131b2565b9050919050565b60008115159050919050565b60006131ab82613170565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131f48261320d565b9050919050565b6000613206826131d2565b9050919050565b60006132188261321f565b9050919050565b600061322a826131b2565b9050919050565b60005b8381101561324f578082015181840152602081019050613234565b8381111561325e576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f4d61782054617820697320320000000000000000000000000000000000000000600082015250565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54726164696e6720697320706175736564000000000000000000000000000000600082015250565b7f596f752063616e277420776974686472617720746f6b656e732066726f6d206f60008201527f776e656420627920636f6e74726163742e000000000000000000000000000000602082015250565b7f4f6e6c79207465616d2063616e2063616c6c20746869732066756e6374696f6e600082015250565b7f416d6f756e7420657863656564206d61782074726e7820616d6f756e74000000600082015250565b7f4f6e6c79204465706c6f7965722043616e20746869732066756e6374696f6e00600082015250565b7f62616c616e6365206973206c6f77000000000000000000000000000000000000600082015250565b7f5a65726f206164647265737320657863657074696f6e00000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f42616c616e6365206c657373207468656e207472616e73666572000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f6d61782057616c6c6574206c696d697420657863656564656400000000000000600082015250565b61369081613170565b811461369b57600080fd5b50565b6136a781613182565b81146136b257600080fd5b50565b6136be81613194565b81146136c957600080fd5b50565b6136d5816131a0565b81146136e057600080fd5b50565b6136ec816131d2565b81146136f757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209bfcffb99c76ba07b96e2683b0be886425b1e65b2fddae1ab68a12079df4ccee64736f6c63430008070033000000000000000000000000a10e7269d06050282cc51a7f6a7a60cf77b5e5a1000000000000000000000000101aea816568128f6fb82c6b3251e7102fcdf38a0000000000000000000000001e29121f29fbb8b8695d1abb4ce7b58f331bf723