Loading
60806040526001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506040518060400160405280600581526020017f28617274290000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f28617274290000000000000000000000000000000000000000000000000000008152508160039081620000b7919062000e6b565b508060049081620000c9919062000e6b565b505050620000ec620000e0620006a060201b60201c565b620006a860201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d5919062000fbc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000285919062000fbc565b6040518363ffffffff1660e01b8152600401620002a492919062000fff565b6020604051808303816000875af1158015620002c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ea919062000fbc565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200035f600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200076e60201b60201c565b62000394600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200082160201b60201c565b60006b033b2e3c9fd0803ce800000090506064600382620003b691906200105b565b620003c29190620010eb565b600a819055506064600382620003d991906200105b565b620003e59190620010eb565b600c81905550612710600a82620003fd91906200105b565b620004099190620010eb565b600b819055506005600f8190555060006011819055506000601081905550600060138190555060006014819055506000601281905550601054601154600f5462000454919062001123565b62000460919062001123565b600e819055507312b15f2a6eaff7317226545562f382a3f01fc19e600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507312b15f2a6eaff7317226545562f382a3f01fc19e600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000532620005246200090b60201b60201c565b60016200082160201b60201c565b62000554620005466200090b60201b60201c565b60016200093560201b60201c565b62000589600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200093560201b60201c565b620005be600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200093560201b60201c565b620005d13060016200093560201b60201c565b620005e661dead60016200093560201b60201c565b6200061b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200082160201b60201c565b62000650600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200082160201b60201c565b620006633060016200082160201b60201c565b6200067861dead60016200082160201b60201c565b620006996200068c6200090b60201b60201c565b8262000a6f60201b60201c565b50620012bb565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007d782826200082160201b60201c565b8015158273ffffffffffffffffffffffffffffffffffffffff167fb6f1aed3b1ced30ce666a8b7f2e12b02aed514cdab677738640be9937f13320560405160405180910390a35050565b62000831620006a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008576200090b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620008b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a790620011bf565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000945620006a060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200096b6200090b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620009c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009bb90620011bf565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f49105ef91d0f4a02f15f838145af2e53c8a1d28924a68648a51ddc33ebd7d0258260405162000a639190620011fe565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ad8906200126b565b60405180910390fd5b62000af56000838362000be760201b60201c565b806002600082825462000b09919062001123565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000b60919062001123565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000bc791906200129e565b60405180910390a362000be36000838362000bec60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c7357607f821691505b60208210810362000c895762000c8862000c2b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000cf37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cb4565b62000cff868362000cb4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d4c62000d4662000d408462000d17565b62000d21565b62000d17565b9050919050565b6000819050919050565b62000d688362000d2b565b62000d8062000d778262000d53565b84845462000cc1565b825550505050565b600090565b62000d9762000d88565b62000da481848462000d5d565b505050565b5b8181101562000dcc5762000dc060008262000d8d565b60018101905062000daa565b5050565b601f82111562000e1b5762000de58162000c8f565b62000df08462000ca4565b8101602085101562000e00578190505b62000e1862000e0f8562000ca4565b83018262000da9565b50505b505050565b600082821c905092915050565b600062000e406000198460080262000e20565b1980831691505092915050565b600062000e5b838362000e2d565b9150826002028217905092915050565b62000e768262000bf1565b67ffffffffffffffff81111562000e925762000e9162000bfc565b5b62000e9e825462000c5a565b62000eab82828562000dd0565b600060209050601f83116001811462000ee3576000841562000ece578287015190505b62000eda858262000e4d565b86555062000f4a565b601f19841662000ef38662000c8f565b60005b8281101562000f1d5784890151825560018201915060208501945060208101905062000ef6565b8683101562000f3d578489015162000f39601f89168262000e2d565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f848262000f57565b9050919050565b62000f968162000f77565b811462000fa257600080fd5b50565b60008151905062000fb68162000f8b565b92915050565b60006020828403121562000fd55762000fd462000f52565b5b600062000fe58482850162000fa5565b91505092915050565b62000ff98162000f77565b82525050565b600060408201905062001016600083018562000fee565b62001025602083018462000fee565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010688262000d17565b9150620010758362000d17565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620010b157620010b06200102c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010f88262000d17565b9150620011058362000d17565b925082620011185762001117620010bc565b5b828204905092915050565b6000620011308262000d17565b91506200113d8362000d17565b92508282019050808211156200115857620011576200102c565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620011a76020836200115e565b9150620011b4826200116f565b602082019050919050565b60006020820190508181036000830152620011da8162001198565b9050919050565b60008115159050919050565b620011f881620011e1565b82525050565b6000602082019050620012156000830184620011ed565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001253601f836200115e565b915062001260826200121b565b602082019050919050565b60006020820190508181036000830152620012868162001244565b9050919050565b620012988162000d17565b82525050565b6000602082019050620012b560008301846200128d565b92915050565b6145e780620012cb6000396000f3fe60806040526004361061021e5760003560e01c8063751039fc11610123578063b62496f5116100ab578063d41a9fd71161006f578063d41a9fd7146107e0578063dd62ed3e146107f7578063e73b90cd14610834578063f2fde38b1461085f578063fea4fa4d1461088857610225565b8063b62496f5146106eb578063bfcc47d614610728578063c18bc19514610751578063cb94a3701461077a578063d257b34f146107a357610225565b806395d89b41116100f257806395d89b41146106045780639c74daf01461062f578063a457c2d71461065a578063a9059cbb14610697578063ae76b090146106d457610225565b8063751039fc1461055a5780637571336a1461058557806382247ec0146105ae5780638da5cb5b146105d957610225565b8063313ce567116101a65780635342acb4116101755780635342acb414610475578063583e0568146104b25780636f7de7e9146104dd57806370a0823114610506578063715018a61461054357610225565b8063313ce567146103cd578063339578fe146103f8578063395093511461040f5780634ec27aac1461044c57610225565b8063203e727e116101ed578063203e727e146102e8578063224290851461031157806323b872dd1461033a57806327f4d7d5146103775780632fd689e3146103a257610225565b806304beaeb81461022a57806306fdde0314610255578063095ea7b31461028057806318160ddd146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108b3565b60405161024c91906132e8565b60405180910390f35b34801561026157600080fd5b5061026a6108b9565b6040516102779190613393565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190613444565b61094b565b6040516102b4919061349f565b60405180910390f35b3480156102c957600080fd5b506102d261096e565b6040516102df91906132e8565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906134ba565b610978565b005b34801561031d57600080fd5b50610338600480360381019061033391906134e7565b610a87565b005b34801561034657600080fd5b50610361600480360381019061035c919061353a565b610b86565b60405161036e919061349f565b60405180910390f35b34801561038357600080fd5b5061038c610bb5565b604051610399919061349f565b60405180910390f35b3480156103ae57600080fd5b506103b7610bc8565b6040516103c491906132e8565b60405180910390f35b3480156103d957600080fd5b506103e2610bce565b6040516103ef91906135a9565b60405180910390f35b34801561040457600080fd5b5061040d610bd7565b005b34801561041b57600080fd5b5061043660048036038101906104319190613444565b610c5d565b604051610443919061349f565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e91906135f0565b610c94565b005b34801561048157600080fd5b5061049c60048036038101906104979190613630565b610df4565b6040516104a9919061349f565b60405180910390f35b3480156104be57600080fd5b506104c7610e4a565b6040516104d491906136bc565b60405180910390f35b3480156104e957600080fd5b5061050460048036038101906104ff91906135f0565b610e70565b005b34801561051257600080fd5b5061052d60048036038101906105289190613630565b610f95565b60405161053a91906132e8565b60405180910390f35b34801561054f57600080fd5b50610558610fdd565b005b34801561056657600080fd5b5061056f611065565b60405161057c919061349f565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a791906135f0565b611105565b005b3480156105ba57600080fd5b506105c36111dc565b6040516105d091906132e8565b60405180910390f35b3480156105e557600080fd5b506105ee6111e2565b6040516105fb91906136e6565b60405180910390f35b34801561061057600080fd5b5061061961120c565b6040516106269190613393565b60405180910390f35b34801561063b57600080fd5b5061064461129e565b60405161065191906136e6565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190613444565b6112c4565b60405161068e919061349f565b60405180910390f35b3480156106a357600080fd5b506106be60048036038101906106b99190613444565b61133b565b6040516106cb919061349f565b60405180910390f35b3480156106e057600080fd5b506106e961135e565b005b3480156106f757600080fd5b50610712600480360381019061070d9190613630565b6113e4565b60405161071f919061349f565b60405180910390f35b34801561073457600080fd5b5061074f600480360381019061074a9190613630565b611404565b005b34801561075d57600080fd5b50610778600480360381019061077391906134ba565b6114c4565b005b34801561078657600080fd5b506107a1600480360381019061079c9190613630565b6115d3565b005b3480156107af57600080fd5b506107ca60048036038101906107c591906134ba565b611693565b6040516107d7919061349f565b60405180910390f35b3480156107ec57600080fd5b506107f56117e8565b005b34801561080357600080fd5b5061081e60048036038101906108199190613701565b611881565b60405161082b91906132e8565b60405180910390f35b34801561084057600080fd5b50610849611908565b604051610856919061349f565b60405180910390f35b34801561086b57600080fd5b5061088660048036038101906108819190613630565b61191b565b005b34801561089457600080fd5b5061089d611a12565b6040516108aa91906132e8565b60405180910390f35b600a5481565b6060600380546108c890613770565b80601f01602080910402602001604051908101604052809291908181526020018280546108f490613770565b80156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b5050505050905090565b600080610956611a18565b9050610963818585611a20565b600191505092915050565b6000600254905090565b610980611a18565b73ffffffffffffffffffffffffffffffffffffffff1661099e6111e2565b73ffffffffffffffffffffffffffffffffffffffff16146109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109eb906137ed565b60405180910390fd5b670de0b6b3a76400006103e86001610a0a61096e565b610a14919061383c565b610a1e91906138c5565b610a2891906138c5565b811015610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190613968565b60405180910390fd5b670de0b6b3a764000081610a7e919061383c565b600a8190555050565b610a8f611a18565b73ffffffffffffffffffffffffffffffffffffffff16610aad6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa906137ed565b60405180910390fd5b82600f819055508160118190555080601081905550601054601154600f54610b2b9190613988565b610b359190613988565b600e81905550600a600e541115610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890613a08565b60405180910390fd5b505050565b600080610b91611a18565b9050610b9e858285611be9565b610ba9858585611c75565b60019150509392505050565b600d60019054906101000a900460ff1681565b600b5481565b60006012905090565b610bdf611a18565b73ffffffffffffffffffffffffffffffffffffffff16610bfd6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906137ed565b60405180910390fd5b6000601481905550565b600080610c68611a18565b9050610c89818585610c7a8589611881565b610c849190613988565b611a20565b600191505092915050565b610c9c611a18565b73ffffffffffffffffffffffffffffffffffffffff16610cba6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d07906137ed565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9790613a9a565b60405180910390fd5b610daa8282612446565b8015158273ffffffffffffffffffffffffffffffffffffffff167fb6f1aed3b1ced30ce666a8b7f2e12b02aed514cdab677738640be9937f13320560405160405180910390a35050565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e78611a18565b73ffffffffffffffffffffffffffffffffffffffff16610e966111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee3906137ed565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f49105ef91d0f4a02f15f838145af2e53c8a1d28924a68648a51ddc33ebd7d02582604051610f89919061349f565b60405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fe5611a18565b73ffffffffffffffffffffffffffffffffffffffff166110036111e2565b73ffffffffffffffffffffffffffffffffffffffff1614611059576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611050906137ed565b60405180910390fd5b61106360006124f1565b565b600061106f611a18565b73ffffffffffffffffffffffffffffffffffffffff1661108d6111e2565b73ffffffffffffffffffffffffffffffffffffffff16146110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da906137ed565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61110d611a18565b73ffffffffffffffffffffffffffffffffffffffff1661112b6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614611181576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611178906137ed565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461121b90613770565b80601f016020809104026020016040519081016040528092919081815260200182805461124790613770565b80156112945780601f1061126957610100808354040283529160200191611294565b820191906000526020600020905b81548152906001019060200180831161127757829003601f168201915b5050505050905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806112cf611a18565b905060006112dd8286611881565b905083811015611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990613b2c565b60405180910390fd5b61132f8286868403611a20565b60019250505092915050565b600080611346611a18565b9050611353818585611c75565b600191505092915050565b611366611a18565b73ffffffffffffffffffffffffffffffffffffffff166113846111e2565b73ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d1906137ed565b60405180910390fd5b6000601381905550565b601b6020528060005260406000206000915054906101000a900460ff1681565b61140c611a18565b73ffffffffffffffffffffffffffffffffffffffff1661142a6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611477906137ed565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6114cc611a18565b73ffffffffffffffffffffffffffffffffffffffff166114ea6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614611540576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611537906137ed565b60405180910390fd5b670de0b6b3a76400006103e8600561155661096e565b611560919061383c565b61156a91906138c5565b61157491906138c5565b8110156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90613bbe565b60405180910390fd5b670de0b6b3a7640000816115ca919061383c565b600c8190555050565b6115db611a18565b73ffffffffffffffffffffffffffffffffffffffff166115f96111e2565b73ffffffffffffffffffffffffffffffffffffffff161461164f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611646906137ed565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061169d611a18565b73ffffffffffffffffffffffffffffffffffffffff166116bb6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611708906137ed565b60405180910390fd5b620186a0600161171f61096e565b611729919061383c565b61173391906138c5565b821015611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90613c50565b60405180910390fd5b6103e8600561178261096e565b61178c919061383c565b61179691906138c5565b8211156117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf90613ce2565b60405180910390fd5b81600b8190555060019050919050565b6117f0611a18565b73ffffffffffffffffffffffffffffffffffffffff1661180e6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614611864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185b906137ed565b60405180910390fd5b6001600d60016101000a81548160ff021916908315150217905550565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900460ff1681565b611923611a18565b73ffffffffffffffffffffffffffffffffffffffff166119416111e2565b73ffffffffffffffffffffffffffffffffffffffff1614611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198e906137ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90613d74565b60405180910390fd5b611a0f816124f1565b50565b600e5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690613e06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590613e98565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bdc91906132e8565b60405180910390a3505050565b6000611bf58484611881565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c6f5781811015611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5890613f04565b60405180910390fd5b611c6e8484848403611a20565b5b50505050565b6000601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d185750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8090613f96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611def90614028565b60405180910390fd5b600d60019054906101000a900460ff1680611e105750805b611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4690614094565b60405180910390fd5b60008203611e6957611e63848460006125b7565b50612441565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611f125750601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611fbd5750601960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90506000611fc96111e2565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148061203457506120056111e2565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b905060008073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16148061209f575061dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b9050600082806120ac5750815b806120c35750600760149054906101000a900460ff165b9050600d60009054906101000a900460ff1680156120df575080155b1561229657841561218c57600a5487111561212f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212690614126565b60405180910390fd5b600c5461213b89610f95565b886121469190613988565b1115612187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217e90614192565b60405180910390fd5b612295565b8361229457601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122355750601960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561229357600c5461224689610f95565b886122519190613988565b1115612292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228990614192565b60405180910390fd5b5b5b5b5b600760149054906101000a900460ff161580156122fd5750601b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123535750601860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123a95750601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561242d576000601a5411156123c457505050505050612441565b60006123cf30610f95565b90506000600b5482101590508080156123e6575087155b1561242a576001600760146101000a81548160ff02191690831515021790555061240e612836565b6000600760146101000a81548160ff0219169083151502179055505b50505b61243a8989898789612b04565b5050505050505b505050565b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124a78282611105565b8015158273ffffffffffffffffffffffffffffffffffffffff167fb6f1aed3b1ced30ce666a8b7f2e12b02aed514cdab677738640be9937f13320560405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d90613f96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c90614028565b60405180910390fd5b6126a0838383612ceb565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271d90614224565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127b99190613988565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161281d91906132e8565b60405180910390a3612830848484612cf0565b50505050565b600061284130610f95565b905060006016546015546017546128589190613988565b6128629190613988565b905060008214806128735750600081145b1561287f575050612b02565b600b5482111561288f57600b5491505b6000600282601754856128a2919061383c565b6128ac91906138c5565b6128b691906138c5565b905060006128cd8285612cf590919063ffffffff16565b905060004790506128dd82612d0b565b60006128f28247612cf590919063ffffffff16565b9050600061291d8661290f60155485612f4e90919063ffffffff16565b612f6490919063ffffffff16565b905060006129488761293a60165486612f4e90919063ffffffff16565b612f6490919063ffffffff16565b905060008183856129599190614244565b6129639190614244565b90506000871180156129755750600081115b156129c2576129848782612f7a565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56186826017546040516129b993929190614278565b60405180910390a15b6000601781905550600060158190555060006016819055506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612a22906142e0565b60006040518083038185875af1925050503d8060008114612a5f576040519150601f19603f3d011682016040523d82523d6000602084013e612a64565b606091505b505090506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612ab0906142e0565b60006040518083038185875af1925050503d8060008114612aed576040519150601f19603f3d011682016040523d82523d6000602084013e612af2565b606091505b5050905050505050505050505050505b565b6000612b10868661305f565b90508015612c62576000600e5490506000600f5490508415612b5157601354600e54612b3c9190613988565b9150601354600f54612b4e9190613988565b90505b8315612b7c57601454600e54612b679190613988565b9150601454600f54612b799190613988565b90505b6000612ba46064612b96858a612f4e90919063ffffffff16565b612f6490919063ffffffff16565b90508260105482612bb5919061383c565b612bbf91906138c5565b60176000828254612bd09190613988565b92505081905550828282612be4919061383c565b612bee91906138c5565b60156000828254612bff9190613988565b925050819055508260115482612c15919061383c565b612c1f91906138c5565b60166000828254612c309190613988565b925050819055506000811115612c4c57612c4b8930836125b7565b5b8087612c589190614244565b9650505050612cd7565b83612c6c87610f95565b1015612cd657601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612cd057612ccf853086611c75565b5b50612ce4565b5b612ce28686866125b7565b505b5050505050565b505050565b505050565b60008183612d039190614244565b905092915050565b6000600267ffffffffffffffff811115612d2857612d276142f5565b5b604051908082528060200260200182016040528015612d565781602001602082028036833780820191505090505b5090503081600081518110612d6e57612d6d614324565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e399190614368565b81600181518110612e4d57612e4c614324565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612eb430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a20565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f1895949392919061448e565b600060405180830381600087803b158015612f3257600080fd5b505af1158015612f46573d6000803e3d6000fd5b505050505050565b60008183612f5c919061383c565b905092915050565b60008183612f7291906138c5565b905092915050565b612fa730600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a20565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080612ff36111e2565b426040518863ffffffff1660e01b8152600401613015969594939291906144e8565b60606040518083038185885af1158015613033573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613058919061455e565b5050505050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561310d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508080156131655750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613185576001601a600082825461317d9190613988565b925050819055505b6000601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806132285750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161490506000838061328a5750815b9050600080600e541190508080156132af5750600760149054906101000a900460ff16155b80156132b9575083155b80156132c25750815b9550505050505092915050565b6000819050919050565b6132e2816132cf565b82525050565b60006020820190506132fd60008301846132d9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561333d578082015181840152602081019050613322565b60008484015250505050565b6000601f19601f8301169050919050565b600061336582613303565b61336f818561330e565b935061337f81856020860161331f565b61338881613349565b840191505092915050565b600060208201905081810360008301526133ad818461335a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006133e5826133ba565b9050919050565b6133f5816133da565b811461340057600080fd5b50565b600081359050613412816133ec565b92915050565b613421816132cf565b811461342c57600080fd5b50565b60008135905061343e81613418565b92915050565b6000806040838503121561345b5761345a6133b5565b5b600061346985828601613403565b925050602061347a8582860161342f565b9150509250929050565b60008115159050919050565b61349981613484565b82525050565b60006020820190506134b46000830184613490565b92915050565b6000602082840312156134d0576134cf6133b5565b5b60006134de8482850161342f565b91505092915050565b600080600060608486031215613500576134ff6133b5565b5b600061350e8682870161342f565b935050602061351f8682870161342f565b92505060406135308682870161342f565b9150509250925092565b600080600060608486031215613553576135526133b5565b5b600061356186828701613403565b935050602061357286828701613403565b92505060406135838682870161342f565b9150509250925092565b600060ff82169050919050565b6135a38161358d565b82525050565b60006020820190506135be600083018461359a565b92915050565b6135cd81613484565b81146135d857600080fd5b50565b6000813590506135ea816135c4565b92915050565b60008060408385031215613607576136066133b5565b5b600061361585828601613403565b9250506020613626858286016135db565b9150509250929050565b600060208284031215613646576136456133b5565b5b600061365484828501613403565b91505092915050565b6000819050919050565b600061368261367d613678846133ba565b61365d565b6133ba565b9050919050565b600061369482613667565b9050919050565b60006136a682613689565b9050919050565b6136b68161369b565b82525050565b60006020820190506136d160008301846136ad565b92915050565b6136e0816133da565b82525050565b60006020820190506136fb60008301846136d7565b92915050565b60008060408385031215613718576137176133b5565b5b600061372685828601613403565b925050602061373785828601613403565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061378857607f821691505b60208210810361379b5761379a613741565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137d760208361330e565b91506137e2826137a1565b602082019050919050565b60006020820190508181036000830152613806816137ca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613847826132cf565b9150613852836132cf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561388b5761388a61380d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138d0826132cf565b91506138db836132cf565b9250826138eb576138ea613896565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613952602f8361330e565b915061395d826138f6565b604082019050919050565b6000602082019050818103600083015261398181613945565b9050919050565b6000613993826132cf565b915061399e836132cf565b92508282019050808211156139b6576139b561380d565b5b92915050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b60006139f2601d8361330e565b91506139fd826139bc565b602082019050919050565b60006020820190508181036000830152613a21816139e5565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613a8460398361330e565b9150613a8f82613a28565b604082019050919050565b60006020820190508181036000830152613ab381613a77565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b1660258361330e565b9150613b2182613aba565b604082019050919050565b60006020820190508181036000830152613b4581613b09565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613ba860248361330e565b9150613bb382613b4c565b604082019050919050565b60006020820190508181036000830152613bd781613b9b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613c3a60358361330e565b9150613c4582613bde565b604082019050919050565b60006020820190508181036000830152613c6981613c2d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613ccc60348361330e565b9150613cd782613c70565b604082019050919050565b60006020820190508181036000830152613cfb81613cbf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d5e60268361330e565b9150613d6982613d02565b604082019050919050565b60006020820190508181036000830152613d8d81613d51565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613df060248361330e565b9150613dfb82613d94565b604082019050919050565b60006020820190508181036000830152613e1f81613de3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e8260228361330e565b9150613e8d82613e26565b604082019050919050565b60006020820190508181036000830152613eb181613e75565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613eee601d8361330e565b9150613ef982613eb8565b602082019050919050565b60006020820190508181036000830152613f1d81613ee1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f8060258361330e565b9150613f8b82613f24565b604082019050919050565b60006020820190508181036000830152613faf81613f73565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061401260238361330e565b915061401d82613fb6565b604082019050919050565b6000602082019050818103600083015261404181614005565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061407e60168361330e565b915061408982614048565b602082019050919050565b600060208201905081810360008301526140ad81614071565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b600061411060358361330e565b915061411b826140b4565b604082019050919050565b6000602082019050818103600083015261413f81614103565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061417c60138361330e565b915061418782614146565b602082019050919050565b600060208201905081810360008301526141ab8161416f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061420e60268361330e565b9150614219826141b2565b604082019050919050565b6000602082019050818103600083015261423d81614201565b9050919050565b600061424f826132cf565b915061425a836132cf565b92508282039050818111156142725761427161380d565b5b92915050565b600060608201905061428d60008301866132d9565b61429a60208301856132d9565b6142a760408301846132d9565b949350505050565b600081905092915050565b50565b60006142ca6000836142af565b91506142d5826142ba565b600082019050919050565b60006142eb826142bd565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614362816133ec565b92915050565b60006020828403121561437e5761437d6133b5565b5b600061438c84828501614353565b91505092915050565b6000819050919050565b60006143ba6143b56143b084614395565b61365d565b6132cf565b9050919050565b6143ca8161439f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614405816133da565b82525050565b600061441783836143fc565b60208301905092915050565b6000602082019050919050565b600061443b826143d0565b61444581856143db565b9350614450836143ec565b8060005b83811015614481578151614468888261440b565b975061447383614423565b925050600181019050614454565b5085935050505092915050565b600060a0820190506144a360008301886132d9565b6144b060208301876143c1565b81810360408301526144c28186614430565b90506144d160608301856136d7565b6144de60808301846132d9565b9695505050505050565b600060c0820190506144fd60008301896136d7565b61450a60208301886132d9565b61451760408301876143c1565b61452460608301866143c1565b61453160808301856136d7565b61453e60a08301846132d9565b979650505050505050565b60008151905061455881613418565b92915050565b600080600060608486031215614577576145766133b5565b5b600061458586828701614549565b935050602061459686828701614549565b92505060406145a786828701614549565b915050925092509256fea2646970667358221220bb95dde9c26a3626e264aae1d81907c2b34d6e83e31f6203d3cba3183cf66dd164736f6c63430008100033