60806040526040518060400160405280600c81526020017f5468756e646572566572736500000000000000000000000000000000000000008152506003908051906020019062000051929190620008ca565b506040518060400160405280600781526020017f5448554e44455200000000000000000000000000000000000000000000000000815250600490805190602001906200009f929190620008ca565b506009600560006101000a81548160ff021916908360ff160217905550600560009054906101000a900460ff16600a620000da919062000b3b565b6305f5e100620000eb919062000c78565b600655733d801ec779a2284aeee45d1f9ba3250a6af848c1600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620001a557600080fd5b506000620001b86200083660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b657600080fd5b505afa158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f1919062000991565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035457600080fd5b505afa15801562000369573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038f919062000991565b6040518363ffffffff1660e01b8152600401620003ae92919062000a06565b602060405180830381600087803b158015620003c957600080fd5b505af1158015620003de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000404919062000991565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60006200049b6200083e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200055a6200083e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f8190555060056011819055506000601081905550620006ce601054620006ba601154600f546200086760201b62001dcb1790919060201c565b6200086760201b62001dcb1790919060201c565b600d81905550620006f2601154600f546200086760201b62001dcb1790919060201c565b600e81905550600560009054906101000a900460ff16600a62000716919062000b3b565b620f424062000726919062000c78565b601581905550600560009054906101000a900460ff16600a6200074a919062000b3b565b633b9aca006200075b919062000c78565b60128190555060065460096000620007786200083660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007c66200083660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000827919062000a55565b60405180910390a35062000e08565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000878919062000a83565b905083811015620008c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b79062000a33565b60405180910390fd5b8091505092915050565b828054620008d89062000d24565b90600052602060002090601f016020900481019282620008fc576000855562000948565b82601f106200091757805160ff191683800117855562000948565b8280016001018555821562000948579182015b82811115620009475782518255916020019190600101906200092a565b5b5090506200095791906200095b565b5090565b5b80821115620009765760008160009055506001016200095c565b5090565b6000815190506200098b8162000dee565b92915050565b600060208284031215620009a457600080fd5b6000620009b4848285016200097a565b91505092915050565b620009c88162000cd9565b82525050565b6000620009dd601b8362000a72565b9150620009ea8262000dc5565b602082019050919050565b62000a008162000d0d565b82525050565b600060408201905062000a1d6000830185620009bd565b62000a2c6020830184620009bd565b9392505050565b6000602082019050818103600083015262000a4e81620009ce565b9050919050565b600060208201905062000a6c6000830184620009f5565b92915050565b600082825260208201905092915050565b600062000a908262000d0d565b915062000a9d8362000d0d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ad55762000ad462000d5a565b5b828201905092915050565b6000808291508390505b600185111562000b325780860481111562000b0a5762000b0962000d5a565b5b600185161562000b1a5780820291505b808102905062000b2a8562000db8565b945062000aea565b94509492505050565b600062000b488262000d0d565b915062000b558362000d17565b925062000b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b8c565b905092915050565b60008262000b9e576001905062000c71565b8162000bae576000905062000c71565b816001811462000bc7576002811462000bd25762000c08565b600191505062000c71565b60ff84111562000be75762000be662000d5a565b5b8360020a91508482111562000c015762000c0062000d5a565b5b5062000c71565b5060208310610133831016604e8410600b841016171562000c425782820a90508381111562000c3c5762000c3b62000d5a565b5b62000c71565b62000c51848484600162000ae0565b9250905081840481111562000c6b5762000c6a62000d5a565b5b81810290505b9392505050565b600062000c858262000d0d565b915062000c928362000d0d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cce5762000ccd62000d5a565b5b828202905092915050565b600062000ce68262000ced565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000d3d57607f821691505b6020821081141562000d545762000d5362000d89565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000df98162000cd9565b811462000e0557600080fd5b50565b6142f88062000e186000396000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063a457c2d7116100ab578063e5148bd61161006f578063e5148bd614610870578063e57f14e11461089b578063e83e34b1146108c4578063f2fde38b146108ef578063fce589d8146109185761023b565b8063a457c2d714610765578063a5ece941146107a2578063a9059cbb146107cd578063cea269581461080a578063dd62ed3e146108335761023b565b8063906e9dd0116100f2578063906e9dd01461069457806395d89b41146106bd57806398118cb4146106e85780639b3d39b0146107135780639d51d9b71461073c5761023b565b806370a08231146105c1578063715018a6146105fe57806373ad468a146106155780638da5cb5b146106405780638ee88c531461066b5761023b565b80632b151cfe116101bc57806349bd5a5e1161018057806349bd5a5e146104da5780634fbee193146105055780635e8bc4bc146105425780635eb10c941461056d5780636b67c4df146105965761023b565b80632b151cfe146103f75780632b9a9ca314610420578063313ce567146104495780633950935114610474578063457c194c146104b15761023b565b806316a2f82a1161020357806316a2f82a146102fe57806318160ddd14610327578063181cec1c1461035257806323b872dd1461038f57806327c8f835146103cc5761023b565b806306fdde0314610240578063095ea7b31461026b57806313114a9d146102a85780631694505e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610943565b604051610262919061398b565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d91906134b5565b6109d5565b60405161029f9190613955565b60405180910390f35b3480156102b457600080fd5b506102bd6109f3565b6040516102ca9190613b2d565b60405180910390f35b3480156102df57600080fd5b506102e86109fd565b6040516102f59190613970565b60405180910390f35b34801561030a57600080fd5b50610325600480360381019061032091906133af565b610a23565b005b34801561033357600080fd5b5061033c610b13565b6040516103499190613b2d565b60405180910390f35b34801561035e57600080fd5b50610379600480360381019061037491906133af565b610b1d565b6040516103869190613955565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b19190613466565b610b73565b6040516103c39190613955565b60405180910390f35b3480156103d857600080fd5b506103e1610c4c565b6040516103ee9190613895565b60405180910390f35b34801561040357600080fd5b5061041e600480360381019061041991906133af565b610c52565b005b34801561042c57600080fd5b506104476004803603810190610442919061351a565b610d42565b005b34801561045557600080fd5b5061045e610de1565b60405161046b9190613ba2565b60405180910390f35b34801561048057600080fd5b5061049b600480360381019061049691906134b5565b610df8565b6040516104a89190613955565b60405180910390f35b3480156104bd57600080fd5b506104d860048036038101906104d3919061351a565b610eab565b005b3480156104e657600080fd5b506104ef611021565b6040516104fc9190613895565b60405180910390f35b34801561051157600080fd5b5061052c600480360381019061052791906133af565b611047565b6040516105399190613955565b60405180910390f35b34801561054e57600080fd5b5061055761109d565b6040516105649190613b2d565b60405180910390f35b34801561057957600080fd5b50610594600480360381019061058f91906133af565b6110a7565b005b3480156105a257600080fd5b506105ab611197565b6040516105b89190613b2d565b60405180910390f35b3480156105cd57600080fd5b506105e860048036038101906105e391906133af565b6111a1565b6040516105f59190613b2d565b60405180910390f35b34801561060a57600080fd5b506106136111ea565b005b34801561062157600080fd5b5061062a61133d565b6040516106379190613b2d565b60405180910390f35b34801561064c57600080fd5b50610655611347565b6040516106629190613895565b60405180910390f35b34801561067757600080fd5b50610692600480360381019061068d919061351a565b611370565b005b3480156106a057600080fd5b506106bb60048036038101906106b69190613401565b611552565b005b3480156106c957600080fd5b506106d261162b565b6040516106df919061398b565b60405180910390f35b3480156106f457600080fd5b506106fd6116bd565b60405161070a9190613b2d565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906133af565b6116c7565b005b34801561074857600080fd5b50610763600480360381019061075e919061351a565b6117a0565b005b34801561077157600080fd5b5061078c600480360381019061078791906134b5565b61183f565b6040516107999190613955565b60405180910390f35b3480156107ae57600080fd5b506107b761190c565b6040516107c491906138b0565b60405180910390f35b3480156107d957600080fd5b506107f460048036038101906107ef91906134b5565b611932565b6040516108019190613955565b60405180910390f35b34801561081657600080fd5b50610831600480360381019061082c919061351a565b611950565b005b34801561083f57600080fd5b5061085a6004803603810190610855919061342a565b611a59565b6040516108679190613b2d565b60405180910390f35b34801561087c57600080fd5b50610885611ae0565b6040516108929190613895565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd91906133af565b611b06565b005b3480156108d057600080fd5b506108d9611bf6565b6040516108e69190613b2d565b60405180910390f35b3480156108fb57600080fd5b50610916600480360381019061091191906133af565b611bff565b005b34801561092457600080fd5b5061092d611dc1565b60405161093a9190613b2d565b60405180910390f35b60606003805461095290613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461097e90613e2d565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b60006109e96109e2611e29565b8484611e31565b6001905092915050565b6000600d54905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a2b611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaf90613a8d565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600654905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610b80848484611ffc565b610c4184610b8c611e29565b610c3c8560405180606001604052806028815260200161427660289139600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bf2611e29565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125179092919063ffffffff16565b611e31565b600190509392505050565b61dead81565b610c5a611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90613a8d565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d4a611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce90613a8d565b60405180910390fd5b8060158190555050565b6000600560009054906101000a900460ff16905090565b6000610ea1610e05611e29565b84610e9c85600a6000610e16611e29565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcb90919063ffffffff16565b611e31565b6001905092915050565b610eb3611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3790613a8d565b60405180910390fd5b601660009054906101000a900460ff1615610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8790613a2d565b60405180910390fd5b80601181905550610fc2601054610fb4601154600f54611dcb90919063ffffffff16565b611dcb90919063ffffffff16565b600d81905550610fdf601154600f54611dcb90919063ffffffff16565b600e819055507f11792e2e76dd20b61339ffd931c063e7b4f828123d6d257c8d0668279e69c7666011546040516110169190613b2d565b60405180910390a150565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601554905090565b6110af611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390613a8d565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601154905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111f2611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690613a8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000601254905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611378611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90613a8d565b60405180910390fd5b601660009054906101000a900460ff1615611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90613a2d565b60405180910390fd5b600a61148060115461147260105485611dcb90919063ffffffff16565b611dcb90919063ffffffff16565b11156114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890613a4d565b60405180910390fd5b80600f819055506114f36010546114e5601154600f54611dcb90919063ffffffff16565b611dcb90919063ffffffff16565b600d81905550611510601154600f54611dcb90919063ffffffff16565b600e819055507f9715f273db467af4f604be854ced5f63c93d0132583300aef64376e17685b52d600f546040516115479190613b2d565b60405180910390a150565b61155a611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613a8d565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606004805461163a90613e2d565b80601f016020809104026020016040519081016040528092919081815260200182805461166690613e2d565b80156116b35780601f10611688576101008083540402835291602001916116b3565b820191906000526020600020905b81548152906001019060200180831161169657829003601f168201915b5050505050905090565b6000600f54905090565b6116cf611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390613a8d565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117a8611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c90613a8d565b60405180910390fd5b8060128190555050565b600061190261184c611e29565b846118fd8560405180606001604052806025815260200161429e60259139600a6000611876611e29565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125179092919063ffffffff16565b611e31565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061194661193f611e29565b8484611ffc565b6001905092915050565b611958611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dc90613a8d565b60405180910390fd5b80601081905550611a17601054611a09601154600f54611dcb90919063ffffffff16565b611dcb90919063ffffffff16565b600d819055507f0476fcc77110b6ac2d8f2dd346f80d2c5cda54dae5c6ddd6f82b603a4d9b9dc9601054604051611a4e9190613b2d565b60405180910390a150565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b0e611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9290613a8d565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a905090565b611c07611e29565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b90613a8d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb906139cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601054905090565b6000808284611dda9190613c12565b905083811015611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690613a0d565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9890613b0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f08906139ed565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fef9190613b2d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561206c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206390613acd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d3906139ad565b60405180910390fd5b6000811161211f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211690613aad565b60405180910390fd5b612127611347565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121955750612165611347565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121eb5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122505760125461220e82612200856111a1565b611dcb90919063ffffffff16565b111561224f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224690613aed565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156122ba5750601660009054906101000a900460ff16155b80156122d057506015546122cd306111a1565b10155b80156122de57506000600e54115b801561231d57506122ed611347565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561235c575061232c611347565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561236a5761236961257b565b5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061240b5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15801561241a57506000600d54115b15612507576000612449606461243b600e548561263190919063ffffffff16565b6126ac90919063ffffffff16565b9050600061247560646124676010548661263190919063ffffffff16565b6126ac90919063ffffffff16565b905061249c61248d8284611dcb90919063ffffffff16565b846126f690919063ffffffff16565b92506124a9853084612740565b6124b68561dead83612740565b8473ffffffffffffffffffffffffffffffffffffffff167fab85194d35c4ea153d0b51f3a304d1d22cb8023e499a6503fb6c28c5864ae90e826040516124fc9190613b2d565b60405180910390a250505b612512838383612740565b505050565b600083831115829061255f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612556919061398b565b60405180910390fd5b506000838561256e9190613cf3565b9050809150509392505050565b6001601660006101000a81548160ff02191690831515021790555060006125c9600e546125bb600f546125ad306111a1565b61263190919063ffffffff16565b6126ac90919063ffffffff16565b905060006125fe600e546125f06011546125e2306111a1565b61263190919063ffffffff16565b6126ac90919063ffffffff16565b9050612609826129ce565b61261281612a33565b50506000601660006101000a81548160ff021916908315150217905550565b60008083141561264457600090506126a6565b600082846126529190613c99565b90508284826126619190613c68565b146126a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269890613a6d565b60405180910390fd5b809150505b92915050565b60006126ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bbb565b905092915050565b600061273883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612517565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a790613acd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612820576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612817906139ad565b60405180910390fd5b61288c8160405180606001604052806026815260200161425060269139600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125179092919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292181600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcb90919063ffffffff16565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129c19190613b2d565b60405180910390a3505050565b60006129e46002836126ac90919063ffffffff16565b905060006129fb82846126f690919063ffffffff16565b90506000479050612a0b83612c1e565b6000612a2082476126f690919063ffffffff16565b9050612a2c8382612ee2565b5050505050565b612a3c81612fd6565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612af89190613895565b60206040518083038186803b158015612b1057600080fd5b505afa158015612b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b489190613543565b6040518363ffffffff1660e01b8152600401612b659291906138cb565b602060405180830381600087803b158015612b7f57600080fd5b505af1158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb791906134f1565b5050565b60008083118290612c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf9919061398b565b60405180910390fd5b5060008385612c119190613c68565b9050809150509392505050565b6000600267ffffffffffffffff811115612c61577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612c8f5781602001602082028036833780820191505090505b5090503081600081518110612ccd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d6f57600080fd5b505afa158015612d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612da791906133d8565b81600181518110612de1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e4830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611e31565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612eac959493929190613b48565b600060405180830381600087803b158015612ec657600080fd5b505af1158015612eda573d6000803e3d6000fd5b505050505050565b612f0f30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611e31565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612f5b611347565b426040518863ffffffff1660e01b8152600401612f7d969594939291906138f4565b6060604051808303818588803b158015612f9657600080fd5b505af1158015612faa573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612fcf919061356c565b5050505050565b6000600367ffffffffffffffff811115613019577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156130475781602001602082028036833780820191505090505b5090503081600081518110613085577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561312757600080fd5b505afa15801561313b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315f91906133d8565b81600181518110613199577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110613230577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061329730601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611e31565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958360008430426040518663ffffffff1660e01b81526004016132fb959493929190613b48565b600060405180830381600087803b15801561331557600080fd5b505af1158015613329573d6000803e3d6000fd5b505050505050565b600081359050613340816141f3565b92915050565b600081519050613355816141f3565b92915050565b60008135905061336a8161420a565b92915050565b60008151905061337f81614221565b92915050565b60008135905061339481614238565b92915050565b6000815190506133a981614238565b92915050565b6000602082840312156133c157600080fd5b60006133cf84828501613331565b91505092915050565b6000602082840312156133ea57600080fd5b60006133f884828501613346565b91505092915050565b60006020828403121561341357600080fd5b60006134218482850161335b565b91505092915050565b6000806040838503121561343d57600080fd5b600061344b85828601613331565b925050602061345c85828601613331565b9150509250929050565b60008060006060848603121561347b57600080fd5b600061348986828701613331565b935050602061349a86828701613331565b92505060406134ab86828701613385565b9150509250925092565b600080604083850312156134c857600080fd5b60006134d685828601613331565b92505060206134e785828601613385565b9150509250929050565b60006020828403121561350357600080fd5b600061351184828501613370565b91505092915050565b60006020828403121561352c57600080fd5b600061353a84828501613385565b91505092915050565b60006020828403121561355557600080fd5b60006135638482850161339a565b91505092915050565b60008060006060848603121561358157600080fd5b600061358f8682870161339a565b93505060206135a08682870161339a565b92505060406135b18682870161339a565b9150509250925092565b60006135c783836135f1565b60208301905092915050565b6135dc81613d8e565b82525050565b6135eb81613d39565b82525050565b6135fa81613d27565b82525050565b61360981613d27565b82525050565b600061361a82613bcd565b6136248185613bf0565b935061362f83613bbd565b8060005b8381101561366057815161364788826135bb565b975061365283613be3565b925050600181019050613633565b5085935050505092915050565b61367681613d4b565b82525050565b61368581613da0565b82525050565b61369481613dc4565b82525050565b60006136a582613bd8565b6136af8185613c01565b93506136bf818560208601613dfa565b6136c881613eec565b840191505092915050565b60006136e0602383613c01565b91506136eb82613efd565b604082019050919050565b6000613703602683613c01565b915061370e82613f4c565b604082019050919050565b6000613726602283613c01565b915061373182613f9b565b604082019050919050565b6000613749601b83613c01565b915061375482613fea565b602082019050919050565b600061376c601083613c01565b915061377782614013565b602082019050919050565b600061378f601283613c01565b915061379a8261403c565b602082019050919050565b60006137b2602183613c01565b91506137bd82614065565b604082019050919050565b60006137d5602083613c01565b91506137e0826140b4565b602082019050919050565b60006137f8602983613c01565b9150613803826140dd565b604082019050919050565b600061381b602583613c01565b91506138268261412c565b604082019050919050565b600061383e601783613c01565b91506138498261417b565b602082019050919050565b6000613861602483613c01565b915061386c826141a4565b604082019050919050565b61388081613d77565b82525050565b61388f81613d81565b82525050565b60006020820190506138aa6000830184613600565b92915050565b60006020820190506138c560008301846135e2565b92915050565b60006040820190506138e060008301856135d3565b6138ed6020830184613877565b9392505050565b600060c0820190506139096000830189613600565b6139166020830188613877565b613923604083018761368b565b613930606083018661368b565b61393d6080830185613600565b61394a60a0830184613877565b979650505050505050565b600060208201905061396a600083018461366d565b92915050565b6000602082019050613985600083018461367c565b92915050565b600060208201905081810360008301526139a5818461369a565b905092915050565b600060208201905081810360008301526139c6816136d3565b9050919050565b600060208201905081810360008301526139e6816136f6565b9050919050565b60006020820190508181036000830152613a0681613719565b9050919050565b60006020820190508181036000830152613a268161373c565b9050919050565b60006020820190508181036000830152613a468161375f565b9050919050565b60006020820190508181036000830152613a6681613782565b9050919050565b60006020820190508181036000830152613a86816137a5565b9050919050565b60006020820190508181036000830152613aa6816137c8565b9050919050565b60006020820190508181036000830152613ac6816137eb565b9050919050565b60006020820190508181036000830152613ae68161380e565b9050919050565b60006020820190508181036000830152613b0681613831565b9050919050565b60006020820190508181036000830152613b2681613854565b9050919050565b6000602082019050613b426000830184613877565b92915050565b600060a082019050613b5d6000830188613877565b613b6a602083018761368b565b8181036040830152613b7c818661360f565b9050613b8b6060830185613600565b613b986080830184613877565b9695505050505050565b6000602082019050613bb76000830184613886565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c1d82613d77565b9150613c2883613d77565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c5d57613c5c613e5f565b5b828201905092915050565b6000613c7382613d77565b9150613c7e83613d77565b925082613c8e57613c8d613e8e565b5b828204905092915050565b6000613ca482613d77565b9150613caf83613d77565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ce857613ce7613e5f565b5b828202905092915050565b6000613cfe82613d77565b9150613d0983613d77565b925082821015613d1c57613d1b613e5f565b5b828203905092915050565b6000613d3282613d57565b9050919050565b6000613d4482613d57565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d9982613dd6565b9050919050565b6000613dab82613db2565b9050919050565b6000613dbd82613d57565b9050919050565b6000613dcf82613d77565b9050919050565b6000613de182613de8565b9050919050565b6000613df382613d57565b9050919050565b60005b83811015613e18578082015181840152602081019050613dfd565b83811115613e27576000848401525b50505050565b60006002820490506001821680613e4557607f821691505b60208210811415613e5957613e58613ebd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f696e53776170416e644c69717569667900000000000000000000000000000000600082015250565b7f466565732061726520746f6f20686967682e0000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782042616c616e636520697320726561636865642e000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6141fc81613d27565b811461420757600080fd5b50565b61421381613d39565b811461421e57600080fd5b50565b61422a81613d4b565b811461423557600080fd5b50565b61424181613d77565b811461424c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205a081879768069597b72ed2c7d1c7df85bb27c5601318f235509cd8da6423dda64736f6c63430008040033