60806040526009600a62000014919062000a20565b650125d93be98062000027919062000a71565b6005556009600a6200003a919062000a20565b6503d37ec7b5006200004d919062000a71565b6006556009600a62000060919062000a20565b6507a6fd8f6a0062000073919062000a71565b600755601e60085560286009556000600a556000600b556000600c60006101000a81548160ff0219169083151502179055506000600d556000600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055503480156200010857600080fd5b5060006200011b6200087e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350603846036200021d577310ed43c718714eb63d5aa57b78b54704e256024e600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000397565b60014614806200022d5750600546145b156200028e57737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000396565b61a4b14603620002f357731b02da8cb0d097eb8d57a175b88c7d8b47997506600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000395565b60614603620003575773d99d1c33f9fc3444f8101754abc46c52416550d1600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000394565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200038b9062000b1d565b60405180910390fd5b5b5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042b919062000ba9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004db919062000ba9565b6040518363ffffffff1660e01b8152600401620004fa92919062000bec565b6020604051808303816000875af11580156200051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000540919062000ba9565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b902c672f12364a40ad64be8a35130cd955e0c29600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620005e5919062000a20565b66017e9d8602b400620005f9919062000a71565b600160006200060d6200087e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620006616200087e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007ee6200087e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200084d919062000a20565b66017e9d8602b40062000861919062000a71565b60405162000870919062000c2a565b60405180910390a362000c47565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200091457808604811115620008ec57620008eb62000886565b5b6001851615620008fc5780820291505b80810290506200090c85620008b5565b9450620008cc565b94509492505050565b6000826200092f576001905062000a02565b816200093f576000905062000a02565b8160018114620009585760028114620009635762000999565b600191505062000a02565b60ff84111562000978576200097762000886565b5b8360020a91508482111562000992576200099162000886565b5b5062000a02565b5060208310610133831016604e8410600b8410161715620009d35782820a905083811115620009cd57620009cc62000886565b5b62000a02565b620009e28484846001620008c2565b92509050818404811115620009fc57620009fb62000886565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a2d8262000a09565b915062000a3a8362000a13565b925062000a697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200091d565b905092915050565b600062000a7e8262000a09565b915062000a8b8362000a09565b925082820262000a9b8162000a09565b9150828204841483151762000ab55762000ab462000886565b5b5092915050565b600082825260208201905092915050565b7f57726f6e6720436861696e204964000000000000000000000000000000000000600082015250565b600062000b05600e8362000abc565b915062000b128262000acd565b602082019050919050565b6000602082019050818103600083015262000b388162000af6565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b718262000b44565b9050919050565b62000b838162000b64565b811462000b8f57600080fd5b50565b60008151905062000ba38162000b78565b92915050565b60006020828403121562000bc25762000bc162000b3f565b5b600062000bd28482850162000b92565b91505092915050565b62000be68162000b64565b82525050565b600060408201905062000c03600083018562000bdb565b62000c12602083018462000bdb565b9392505050565b62000c248162000a09565b82525050565b600060208201905062000c41600083018462000c19565b92915050565b61419c8062000c576000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec578063a9059cbb1161008a578063f2fde38b11610064578063f2fde38b14610577578063f87dc2c6146105a0578063fe48b4c6146105cb578063ff511828146105f4576101a7565b8063a9059cbb146104e6578063ce831ed514610523578063dd62ed3e1461053a576101a7565b80638da5cb5b116100c65780638da5cb5b1461045057806395d89b411461047b578063a1d79776146104a6578063a333b4ab146104bd576101a7565b8063715018a6146103e357806385141a77146103fa5780638c0b5e2214610425576101a7565b8063313ce5671161015957806351cd7cc31161013357806351cd7cc31461033d5780635d098b38146103545780636dff2eeb1461037d57806370a08231146103a6576101a7565b8063313ce567146102d2578063437823ec146102fd5780634415fb6114610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632598cdb2146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161061d565b6040516101ce9190612c72565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612d2d565b61065a565b60405161020b9190612d88565b60405180910390f35b34801561022057600080fd5b50610229610678565b6040516102369190612e02565b60405180910390f35b34801561024b57600080fd5b5061025461069e565b6040516102619190612e2c565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612e47565b6106c5565b60405161029e9190612d88565b60405180910390f35b3480156102b357600080fd5b506102bc6107c5565b6040516102c99190612ebb565b60405180910390f35b3480156102de57600080fd5b506102e76107eb565b6040516102f49190612ef2565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612f0d565b6107f4565b005b34801561033257600080fd5b5061033b6109ba565b005b34801561034957600080fd5b50610352610a77565b005b34801561036057600080fd5b5061037b60048036038101906103769190612f66565b610bc0565b005b34801561038957600080fd5b506103a4600480360381019061039f9190612d2d565b610e11565b005b3480156103b257600080fd5b506103cd60048036038101906103c89190612f0d565b6110e5565b6040516103da9190612e2c565b60405180910390f35b3480156103ef57600080fd5b506103f861112e565b005b34801561040657600080fd5b5061040f611281565b60405161041c9190612fa2565b60405180910390f35b34801561043157600080fd5b5061043a611287565b6040516104479190612e2c565b60405180910390f35b34801561045c57600080fd5b5061046561128d565b6040516104729190612fa2565b60405180910390f35b34801561048757600080fd5b506104906112b6565b60405161049d9190612c72565b60405180910390f35b3480156104b257600080fd5b506104bb6112f3565b005b3480156104c957600080fd5b506104e460048036038101906104df9190612fe9565b6113a5565b005b3480156104f257600080fd5b5061050d60048036038101906105089190612d2d565b611486565b60405161051a9190612d88565b60405180910390f35b34801561052f57600080fd5b506105386114a4565b005b34801561054657600080fd5b50610561600480360381019061055c9190613016565b6115c7565b60405161056e9190612e2c565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190612f0d565b61164e565b005b3480156105ac57600080fd5b506105b561175e565b6040516105c29190612d88565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190613056565b611771565b005b34801561060057600080fd5b5061061b60048036038101906106169190612f0d565b611908565b005b60606040518060400160405280600c81526020017f5265656565656565504550450000000000000000000000000000000000000000815250905090565b600061066e610667611ace565b8484611ad6565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6106ae91906131f8565b66017e9d8602b4006106c09190613243565b905090565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610711611ace565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610791576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610788906132f7565b60405180910390fd5b61079c858585611c9f565b6107b9856107a8611ace565b85846107b49190613317565b611ad6565b60019150509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b6107fc611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088090613397565b60405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390613403565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e60405160405180910390a250565b6109c2611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690613397565b60405180910390fd5b6009600a610a5d91906131f8565b66017e9d8602b400610a6f9190613243565b600781905550565b610a7f611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390613397565b60405180910390fd5b600f60149054906101000a900460ff1615610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b539061346f565b60405180910390fd5b6001600f60156101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b610bc8611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90613397565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906134db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d299061356d565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f560405160405180910390a250565b610e19611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d90613397565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906135ff565b60405180910390fd5b60008111610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90613691565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f909190612fa2565b602060405180830381865afa158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd191906136c6565b811115611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a9061373f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611070929190613780565b6020604051808303816000875af115801561108f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b391906137be565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611136611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba90613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61dead81565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f5245455045504500000000000000000000000000000000000000000000000000815250905090565b6112fb611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613397565b60405180910390fd5b6001600c60006101000a81548160ff021916908315150217905550565b6113ad611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190613397565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055508015157f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb60405160405180910390a250565b600061149a611493611ace565b8484611c9f565b6001905092915050565b6000479050600081116114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613691565b60405180910390fd5b4781111561152f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115269061373f565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611597573d6000803e3d6000fd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611656611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117499061385d565b60405180910390fd5b61175b8161279a565b50565b600f60149054906101000a900460ff1681565b611779611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd90613397565b60405180910390fd5b6503d37ec7b50081111561184f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611846906138ef565b60405180910390fd5b650125d93be980821115611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90613981565b60405180910390fd5b6009600a6118a691906131f8565b826118b19190613243565b6005819055506009600a6118c591906131f8565b816118d09190613243565b60068190555080827fa9e7efa397abfe063ede969429ba0525e3083d62f05f959f8496552d2e812b5f60405160405180910390a35050565b611910611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490613397565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a27906139ed565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e60405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613a7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90613b11565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c929190612e2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590613ba3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613c35565b60405180910390fd5b60008111611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db790613cc7565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e665750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef457600f60149054906101000a900460ff16611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb190613d33565b60405180910390fd5b6064600c60009054906101000a900460ff16611ed857600854611edc565b600a545b83611ee79190613243565b611ef19190613d82565b90505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f955750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f9f57600090505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561204a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a05750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561215b576007548211156120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e190613dff565b60405180910390fd5b600754826120f7856110e5565b6121019190613e1f565b1115612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613e9f565b60405180910390fd5b600d600081548092919061215590613ebf565b91905055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122035750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122595750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122a4576007548211156122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613dff565b60405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561232d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156123835750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123d95750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612418576064600c60009054906101000a900460ff166123fc57600954612400565b600b545b8361240b9190613243565b6124159190613d82565b90505b6000612423306110e5565b9050600f60169054906101000a900460ff161580156124905750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124a85750600f60159054906101000a900460ff165b80156124b5575060055481115b80156124c357506001600d54115b156124ff576124e56124e0846124db8460065461285e565b61285e565b612877565b600047905060008111156124fd576124fc47612b33565b5b505b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254a9190613317565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836125999190613317565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e39190613e1f565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84866126819190613317565b60405161268e9190612e2c565b60405180910390a360008211156127935781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ea9190613e1f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161278a9190612e2c565b60405180910390a35b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081831161286d578261286f565b815b905092915050565b6001600f60166101000a81548160ff021916908315150217905550600081116128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc90613f53565b60405180910390fd5b6000600267ffffffffffffffff8111156128f2576128f1613f73565b5b6040519080825280602002602001820160405280156129205781602001602082028036833780820191505090505b509050308160008151811061293857612937613fa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a039190613fe6565b81600181518110612a1757612a16613fa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a7e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ad6565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae295949392919061410c565b600060405180830381600087803b158015612afc57600080fd5b505af1158015612b10573d6000803e3d6000fd5b50505050506000600f60166101000a81548160ff02191690831515021790555050565b60008111612b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6d90613f53565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bde573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c1c578082015181840152602081019050612c01565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c4482612be2565b612c4e8185612bed565b9350612c5e818560208601612bfe565b612c6781612c28565b840191505092915050565b60006020820190508181036000830152612c8c8184612c39565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cc482612c99565b9050919050565b612cd481612cb9565b8114612cdf57600080fd5b50565b600081359050612cf181612ccb565b92915050565b6000819050919050565b612d0a81612cf7565b8114612d1557600080fd5b50565b600081359050612d2781612d01565b92915050565b60008060408385031215612d4457612d43612c94565b5b6000612d5285828601612ce2565b9250506020612d6385828601612d18565b9150509250929050565b60008115159050919050565b612d8281612d6d565b82525050565b6000602082019050612d9d6000830184612d79565b92915050565b6000819050919050565b6000612dc8612dc3612dbe84612c99565b612da3565b612c99565b9050919050565b6000612dda82612dad565b9050919050565b6000612dec82612dcf565b9050919050565b612dfc81612de1565b82525050565b6000602082019050612e176000830184612df3565b92915050565b612e2681612cf7565b82525050565b6000602082019050612e416000830184612e1d565b92915050565b600080600060608486031215612e6057612e5f612c94565b5b6000612e6e86828701612ce2565b9350506020612e7f86828701612ce2565b9250506040612e9086828701612d18565b9150509250925092565b6000612ea582612c99565b9050919050565b612eb581612e9a565b82525050565b6000602082019050612ed06000830184612eac565b92915050565b600060ff82169050919050565b612eec81612ed6565b82525050565b6000602082019050612f076000830184612ee3565b92915050565b600060208284031215612f2357612f22612c94565b5b6000612f3184828501612ce2565b91505092915050565b612f4381612e9a565b8114612f4e57600080fd5b50565b600081359050612f6081612f3a565b92915050565b600060208284031215612f7c57612f7b612c94565b5b6000612f8a84828501612f51565b91505092915050565b612f9c81612cb9565b82525050565b6000602082019050612fb76000830184612f93565b92915050565b612fc681612d6d565b8114612fd157600080fd5b50565b600081359050612fe381612fbd565b92915050565b600060208284031215612fff57612ffe612c94565b5b600061300d84828501612fd4565b91505092915050565b6000806040838503121561302d5761302c612c94565b5b600061303b85828601612ce2565b925050602061304c85828601612ce2565b9150509250929050565b6000806040838503121561306d5761306c612c94565b5b600061307b85828601612d18565b925050602061308c85828601612d18565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561311c578086048111156130f8576130f7613096565b5b60018516156131075780820291505b8081029050613115856130c5565b94506130dc565b94509492505050565b60008261313557600190506131f1565b8161314357600090506131f1565b8160018114613159576002811461316357613192565b60019150506131f1565b60ff84111561317557613174613096565b5b8360020a91508482111561318c5761318b613096565b5b506131f1565b5060208310610133831016604e8410600b84101617156131c75782820a9050838111156131c2576131c1613096565b5b6131f1565b6131d484848460016130d2565b925090508184048111156131eb576131ea613096565b5b81810290505b9392505050565b600061320382612cf7565b915061320e83612ed6565b925061323b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613125565b905092915050565b600061324e82612cf7565b915061325983612cf7565b925082820261326781612cf7565b9150828204841483151761327e5761327d613096565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006132e1602883612bed565b91506132ec82613285565b604082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b600061332282612cf7565b915061332d83612cf7565b925082820390508181111561334557613344613096565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613381602083612bed565b915061338c8261334b565b602082019050919050565b600060208201905081810360008301526133b081613374565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b60006133ed601b83612bed565b91506133f8826133b7565b602082019050919050565b6000602082019050818103600083015261341c816133e0565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613459601783612bed565b915061346482613423565b602082019050919050565b600060208201905081810360008301526134888161344c565b9050919050565b7f43412077696c6c206e6f74206265207468652046656520526563696576657200600082015250565b60006134c5601f83612bed565b91506134d08261348f565b602082019050919050565b600060208201905081810360008301526134f4816134b8565b9050919050565b7f3020616464792077696c6c206e6f74206265207468652066656520526563696560008201527f7665720000000000000000000000000000000000000000000000000000000000602082015250565b6000613557602383612bed565b9150613562826134fb565b604082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006135e9603683612bed565b91506135f48261358d565b604082019050919050565b60006020820190508181036000830152613618816135dc565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b600061367b602283612bed565b91506136868261361f565b604082019050919050565b600060208201905081810360008301526136aa8161366e565b9050919050565b6000815190506136c081612d01565b92915050565b6000602082840312156136dc576136db612c94565b5b60006136ea848285016136b1565b91505092915050565b7f496e73756666696369656e7420416d6f756e7400000000000000000000000000600082015250565b6000613729601383612bed565b9150613734826136f3565b602082019050919050565b600060208201905081810360008301526137588161371c565b9050919050565b600061376a82612dcf565b9050919050565b61377a8161375f565b82525050565b60006040820190506137956000830185613771565b6137a26020830184612e1d565b9392505050565b6000815190506137b881612fbd565b92915050565b6000602082840312156137d4576137d3612c94565b5b60006137e2848285016137a9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613847602683612bed565b9150613852826137eb565b604082019050919050565b600060208201905081810360008301526138768161383a565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f203125206f662074686520737570706c790000000000000000000000602082015250565b60006138d9603583612bed565b91506138e48261387d565b604082019050919050565b60006020820190508181036000830152613908816138cc565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f20302e3325206f662074686520737570706c79000000000000000000602082015250565b600061396b603783612bed565b91506139768261390f565b604082019050919050565b6000602082019050818103600083015261399a8161395e565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006139d7601b83612bed565b91506139e2826139a1565b602082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a69602483612bed565b9150613a7482613a0d565b604082019050919050565b60006020820190508181036000830152613a9881613a5c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afb602283612bed565b9150613b0682613a9f565b604082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b8d602583612bed565b9150613b9882613b31565b604082019050919050565b60006020820190508181036000830152613bbc81613b80565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c1f602383612bed565b9150613c2a82613bc3565b604082019050919050565b60006020820190508181036000830152613c4e81613c12565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613cb1602983612bed565b9150613cbc82613c55565b604082019050919050565b60006020820190508181036000830152613ce081613ca4565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613d1d601383612bed565b9150613d2882613ce7565b602082019050919050565b60006020820190508181036000830152613d4c81613d10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d8d82612cf7565b9150613d9883612cf7565b925082613da857613da7613d53565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613de9601983612bed565b9150613df482613db3565b602082019050919050565b60006020820190508181036000830152613e1881613ddc565b9050919050565b6000613e2a82612cf7565b9150613e3583612cf7565b9250828201905080821115613e4d57613e4c613096565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613e89601a83612bed565b9150613e9482613e53565b602082019050919050565b60006020820190508181036000830152613eb881613e7c565b9050919050565b6000613eca82612cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efc57613efb613096565b5b600182019050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e2030000000600082015250565b6000613f3d601d83612bed565b9150613f4882613f07565b602082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fe081612ccb565b92915050565b600060208284031215613ffc57613ffb612c94565b5b600061400a84828501613fd1565b91505092915050565b6000819050919050565b600061403861403361402e84614013565b612da3565b612cf7565b9050919050565b6140488161401d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408381612cb9565b82525050565b6000614095838361407a565b60208301905092915050565b6000602082019050919050565b60006140b98261404e565b6140c38185614059565b93506140ce8361406a565b8060005b838110156140ff5781516140e68882614089565b97506140f1836140a1565b9250506001810190506140d2565b5085935050505092915050565b600060a0820190506141216000830188612e1d565b61412e602083018761403f565b818103604083015261414081866140ae565b905061414f6060830185612f93565b61415c6080830184612e1d565b969550505050505056fea264697066735822122077cbda2063cf2e545e2f86ae67ffed9c816aa6a4fed01694b7d2d94368d174e864736f6c63430008130033