6080604052606460035560c86004556000600555600060065560006007557391ad7e7cb734af5eca9baa6f4803411fb6279237600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600955683635c9adc5dea00000600c556000600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055506000600d60036101000a81548160ff021916908315150217905550348015620000fd57600080fd5b503362000110816200055360201b60201c565b5062000142336012600a62000126919062000a31565b620f424062000136919062000a82565b6200061760201b60201c565b73c532a74256d3db42d0bf7a0400fefdbad7694008600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022b919062000b37565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db919062000b37565b6040518363ffffffff1660e01b8152600401620002fa92919062000b7a565b6020604051808303816000875af11580156200031a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000340919062000b37565b600d60046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000737c983436362602ca3a38a7d518409e1f08b10c6673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200054d601480603c6200075f60201b60201c565b62000cb0565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200068b57816040517f8e4c8aa600000000000000000000000000000000000000000000000000000000815260040162000682919062000ba7565b60405180910390fd5b80600260008282546200069f919062000bc4565b9250508190555080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000753919062000c10565b60405180910390a35050565b6200076f620007ea60201b60201c565b606481838562000780919062000bc4565b6200078c919062000bc4565b1115620007d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c79062000c8e565b60405180910390fd5b826005819055508160068190555080600781905550505050565b3373ffffffffffffffffffffffffffffffffffffffff16620008116200086e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200086c57336040517f32b2baa300000000000000000000000000000000000000000000000000000000815260040162000863919062000ba7565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200092557808604811115620008fd57620008fc62000897565b5b60018516156200090d5780820291505b80810290506200091d85620008c6565b9450620008dd565b94509492505050565b60008262000940576001905062000a13565b8162000950576000905062000a13565b81600181146200096957600281146200097457620009aa565b600191505062000a13565b60ff84111562000989576200098862000897565b5b8360020a915084821115620009a357620009a262000897565b5b5062000a13565b5060208310610133831016604e8410600b8410161715620009e45782820a905083811115620009de57620009dd62000897565b5b62000a13565b620009f38484846001620008d3565b9250905081840481111562000a0d5762000a0c62000897565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a3e8262000a1a565b915062000a4b8362000a24565b925062000a7a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200092e565b905092915050565b600062000a8f8262000a1a565b915062000a9c8362000a1a565b925082820262000aac8162000a1a565b9150828204841483151762000ac65762000ac562000897565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000aff8262000ad2565b9050919050565b62000b118162000af2565b811462000b1d57600080fd5b50565b60008151905062000b318162000b06565b92915050565b60006020828403121562000b505762000b4f62000acd565b5b600062000b608482850162000b20565b91505092915050565b62000b748162000af2565b82525050565b600060408201905062000b91600083018562000b69565b62000ba0602083018462000b69565b9392505050565b600060208201905062000bbe600083018462000b69565b92915050565b600062000bd18262000a1a565b915062000bde8362000a1a565b925082820190508082111562000bf95762000bf862000897565b5b92915050565b62000c0a8162000a1a565b82525050565b600060208201905062000c27600083018462000bff565b92915050565b600082825260208201905092915050565b7f546f74616c206665652070657263656e74616765206578636565647320313030600082015250565b600062000c7660208362000c2d565b915062000c838262000c3e565b602082019050919050565b6000602082019050818103600083015262000ca98162000c67565b9050919050565b613c628062000cc06000396000f3fe6080604052600436106102815760003560e01c806380ada68a1161014f578063b4b081df116100c1578063d83067861161007a578063d83067861461098d578063dd62ed3e146109b8578063e43504da146109f5578063f2a4268714610a20578063f2fde38b14610a5d578063f887ea4014610a8657610288565b8063b4b081df14610891578063b9b2b5cd146108ba578063c4ceb339146108e5578063c851cc3214610910578063d621e81314610939578063d63cad221461096457610288565b806395d89b411161011357806395d89b411461076b57806399dd541214610796578063a457c2d7146107c1578063a8aa1b31146107fe578063a9059cbb14610829578063ab28a04c1461086657610288565b806380ada68a146106aa5780638a8c523c146106d55780638da5cb5b146106ec578063924de9b7146107175780639358928b1461074057610288565b80633bf31454116101f35780636a3dacf2116101ac5780636a3dacf2146105ac57806370a08231146105d7578063715018a61461061457806375f0a8741461062b57806375fed3c71461065657806378eec3311461067f57610288565b80633bf31454146104ae57806346caf2ae146104d7578063470624021461050257806359cd90311461052d578063601d495814610558578063625dd6051461058357610288565b80632b14ca56116102455780632b14ca561461039a5780632ce0c0a0146103c5578063313ce567146103f0578063351a964d1461041b578063395093511461044657806339d445bf1461048357610288565b806306fdde031461028d57806308c43650146102b8578063095ea7b3146102f557806318160ddd1461033257806323b872dd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610ab1565b6040516102af9190613134565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906131b9565b610aee565b6040516102ec9190613201565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613252565b610b0e565b6040516103299190613201565b60405180910390f35b34801561033e57600080fd5b50610347610b2a565b60405161035491906132a1565b60405180910390f35b34801561036957600080fd5b50610384600480360381019061037f91906132bc565b610b34565b6040516103919190613201565b60405180910390f35b3480156103a657600080fd5b506103af610b5a565b6040516103bc91906132a1565b60405180910390f35b3480156103d157600080fd5b506103da610b60565b6040516103e791906132a1565b60405180910390f35b3480156103fc57600080fd5b50610405610b65565b604051610412919061332b565b60405180910390f35b34801561042757600080fd5b50610430610b6e565b60405161043d9190613201565b60405180910390f35b34801561045257600080fd5b5061046d60048036038101906104689190613252565b610b81565b60405161047a9190613201565b60405180910390f35b34801561048f57600080fd5b50610498610bb1565b6040516104a59190613355565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d0919061339c565b610bc9565b005b3480156104e357600080fd5b506104ec610c97565b6040516104f991906132a1565b60405180910390f35b34801561050e57600080fd5b50610517610c9d565b60405161052491906132a1565b60405180910390f35b34801561053957600080fd5b50610542610ca3565b60405161054f91906132a1565b60405180910390f35b34801561056457600080fd5b5061056d610ca9565b60405161057a91906132a1565b60405180910390f35b34801561058f57600080fd5b506105aa60048036038101906105a591906133c9565b610caf565b005b3480156105b857600080fd5b506105c1610f2c565b6040516105ce9190613201565b60405180910390f35b3480156105e357600080fd5b506105fe60048036038101906105f991906131b9565b610f35565b60405161060b91906132a1565b60405180910390f35b34801561062057600080fd5b50610629610f7e565b005b34801561063757600080fd5b50610640610f92565b60405161064d9190613355565b60405180910390f35b34801561066257600080fd5b5061067d60048036038101906106789190613409565b610fb8565b005b34801561068b57600080fd5b50610694611055565b6040516106a19190613355565b60405180910390f35b3480156106b657600080fd5b506106bf61106d565b6040516106cc91906132a1565b60405180910390f35b3480156106e157600080fd5b506106ea611073565b005b3480156106f857600080fd5b506107016111f1565b60405161070e9190613355565b60405180910390f35b34801561072357600080fd5b5061073e6004803603810190610739919061339c565b61121a565b005b34801561074c57600080fd5b506107556112e8565b60405161076291906132a1565b60405180910390f35b34801561077757600080fd5b50610780611320565b60405161078d9190613134565b60405180910390f35b3480156107a257600080fd5b506107ab61135d565b6040516107b891906132a1565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e39190613252565b611363565b6040516107f59190613201565b60405180910390f35b34801561080a57600080fd5b506108136113d3565b6040516108209190613355565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190613252565b6113f9565b60405161085d9190613201565b60405180910390f35b34801561087257600080fd5b5061087b611413565b60405161088891906132a1565b60405180910390f35b34801561089d57600080fd5b506108b860048036038101906108b39190613436565b611419565b005b3480156108c657600080fd5b506108cf611495565b6040516108dc91906132a1565b60405180910390f35b3480156108f157600080fd5b506108fa61149b565b60405161090791906132a1565b60405180910390f35b34801561091c57600080fd5b50610937600480360381019061093291906131b9565b6114a1565b005b34801561094557600080fd5b5061094e611894565b60405161095b9190613201565b60405180910390f35b34801561097057600080fd5b5061098b600480360381019061098691906133c9565b6118a7565b005b34801561099957600080fd5b506109a261199e565b6040516109af9190613201565b60405180910390f35b3480156109c457600080fd5b506109df60048036038101906109da9190613489565b6119b1565b6040516109ec91906132a1565b60405180910390f35b348015610a0157600080fd5b50610a0a611a38565b604051610a179190613201565b60405180910390f35b348015610a2c57600080fd5b50610a476004803603810190610a4291906131b9565b611a4b565b604051610a549190613201565b60405180910390f35b348015610a6957600080fd5b50610a846004803603810190610a7f91906131b9565b611a6b565b005b348015610a9257600080fd5b50610a9b611af1565b604051610aa89190613528565b60405180910390f35b60606040518060400160405280600a81526020017f446f6e757473436f696e00000000000000000000000000000000000000000000815250905090565b60116020528060005260406000206000915054906101000a900460ff1681565b600080339050610b1f818585611b17565b600191505092915050565b6000600254905090565b600080339050610b45858285611ce4565b610b50858585611d70565b9150509392505050565b60045481565b600081565b60006012905090565b600d60039054906101000a900460ff1681565b600080339050610ba6818585610b9785896119b1565b610ba19190613572565b611b17565b600191505092915050565b737c983436362602ca3a38a7d518409e1f08b10c6681565b610bd16122ea565b801515600d60019054906101000a900460ff16151503610c2857806040517f0a7e72d0000000000000000000000000000000000000000000000000000000008152600401610c1f9190613201565b60405180910390fd5b6000600d60019054906101000a900460ff16905081600d60016101000a81548160ff0219169083151502179055507ff99f9d4d81f67d0980beea494b4404ba3b8af1a0a2d493230f1a883efa027f2f81833342604051610c8b94939291906135a6565b60405180910390a15050565b600b5481565b60035481565b600c5481565b60065481565b610cb76122ea565b801515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610d4b57806040517f0a7e72d0000000000000000000000000000000000000000000000000000000008152600401610d429190613201565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613600565b73ffffffffffffffffffffffffffffffffffffffff1614158015610e8f57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190613600565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610ed157816040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600401610ec89190613355565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006001905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f866122ea565b610f906000612363565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fc06122ea565b80600c540361100657806040517f657e16cf000000000000000000000000000000000000000000000000000000008152600401610ffd91906132a1565b60405180910390fd5b6000600c54905081600c819055507f9a9f4704ac409fe039e92a996e415370980275aaff2992936ed5b432886c55c581833342604051611049949392919061362d565b60405180910390a15050565b737c983436362602ca3a38a7d518409e1f08b10c6681565b60075481565b61107b6122ea565b600d60009054906101000a900460ff16156110dc57600d60009054906101000a900460ff166040517f6fd88e400000000000000000000000000000000000000000000000000000000081526004016110d39190613201565b60405180910390fd5b600d60019054906101000a900460ff161561113d57600d60019054906101000a900460ff166040517f3bfe402c0000000000000000000000000000000000000000000000000000000081526004016111349190613201565b60405180910390fd5b600d60039054906101000a900460ff161561119e57600d60039054906101000a900460ff166040517f610a8e670000000000000000000000000000000000000000000000000000000081526004016111959190613201565b60405180910390fd5b6001600d60006101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff0219169083151502179055506001600d60036101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112226122ea565b801515600d60039054906101000a900460ff1615150361127957806040517f0a7e72d00000000000000000000000000000000000000000000000000000000081526004016112709190613201565b60405180910390fd5b6000600d60039054906101000a900460ff16905081600d60036101000a81548160ff0219169083151502179055507fa9eb6c000d17475b17651469533695f7b673c93327fdbadf4341ebeb2607a044818333426040516112dc94939291906135a6565b60405180910390a15050565b60006112f46000610f35565b6112ff61dead610f35565b611307610b2a565b6113119190613672565b61131b9190613672565b905090565b60606040518060400160405280600681526020017f444f4e5554530000000000000000000000000000000000000000000000000000815250905090565b600a5481565b600080339050600061137582866119b1565b9050838110156113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b190613718565b60405180910390fd5b6113c78286868403611b17565b60019250505092915050565b600d60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008033905061140a818585611d70565b91505092915050565b61271081565b6114216122ea565b60648183856114309190613572565b61143a9190613572565b111561147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147290613784565b60405180910390fd5b826005819055508160068190555080600781905550505050565b60095481565b60055481565b6114a96122ea565b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361153b57806040517fa93663690000000000000000000000000000000000000000000000000000000081526004016115329190613355565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fe1cb783288eddc7b22c25642a832d886a558be0dd900747310a34156b9fdcbbb8183334260405161163094939291906137a4565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c99190613600565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611752573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117769190613600565b6040518363ffffffff1660e01b81526004016117939291906137e9565b6020604051808303816000875af11580156117b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d69190613600565b600d60046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d60009054906101000a900460ff1681565b6118af6122ea565b801515601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361194357806040517f0a7e72d000000000000000000000000000000000000000000000000000000000815260040161193a9190613201565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d60029054906101000a900460ff1681565b6000600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60019054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b611a736122ea565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ae55760006040517fb20f76e3000000000000000000000000000000000000000000000000000000008152600401611adc9190613355565b60405180910390fd5b611aee81612363565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b8857826040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600401611b7f9190613355565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bf957816040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600401611bf09190613355565b60405180910390fd5b80600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd791906132a1565b60405180910390a3505050565b6000611cf084846119b1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611d6a5781811015611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d539061385e565b60405180910390fd5b611d698484848403611b17565b5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611de257836040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600401611dd99190613355565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e5357826040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600401611e4a9190613355565b60405180910390fd5b600d60009054906101000a900460ff16158015611eba5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f105750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f47576040517f56c2a20a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d60029054906101000a900460ff1680611fab5750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fc257611fbb848484612427565b90506122e3565b6000829050600d60019054906101000a900460ff16801561202d5750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120835750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612096576120938585856125b3565b90505b600d60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156120fe5750600c546120fb30610f35565b10155b80156121165750600d60039054906101000a900460ff165b156121245761212361279e565b5b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156121a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219d906138f0565b60405180910390fd5b80600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d591906132a1565b60405180910390a360019150505b9392505050565b3373ffffffffffffffffffffffffffffffffffffffff166123096111f1565b73ffffffffffffffffffffffffffffffffffffffff161461236157336040517f32b2baa30000000000000000000000000000000000000000000000000000000081526004016123589190613355565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a6906138f0565b60405180910390fd5b828103600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161259f91906132a1565b60405180910390a360019150509392505050565b60006001600d60026101000a81548160ff021916908315150217905550601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561262b57506000600354115b156126415761263a8483612c30565b905061277c565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561269c57506000600454115b156126b2576126ab8483612cb6565b905061277c565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127565750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127625750600080115b15612778576127718483612d3c565b905061277c565b8190505b6000600d60026101000a81548160ff0219169083151502179055509392505050565b6001600d60026101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156127d6576127d5613910565b5b6040519080825280602002602001820160405280156128045781602001602082028036833780820191505090505b509050308160008151811061281c5761281b61393f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e79190613600565b816001815181106128fb576128fa61393f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600a541115612a325761296f30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54611b17565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947600a54600084600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129f7959493929190613a67565b600060405180830381600087803b158015612a1157600080fd5b505af1158015612a25573d6000803e3d6000fd5b505050506000600a819055505b6000600b541115612c1257600047905060006002600c54612a539190613af0565b9050600081600c54612a659190613672565b9050612a9630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54611b17565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008730426040518663ffffffff1660e01b8152600401612afa959493929190613a67565b600060405180830381600087803b158015612b1457600080fd5b505af1158015612b28573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198447612b769190613672565b308460008061dead6104b042612b8c9190613572565b6040518863ffffffff1660e01b8152600401612bad96959493929190613b21565b60606040518083038185885af1158015612bcb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612bf09190613b97565b505050600c54600b6000828254612c079190613672565b925050819055505050505b506000600d60026101000a81548160ff021916908315150217905550565b60006001600d60026101000a81548160ff021916908315150217905550600061271060035484612c609190613bea565b612c6a9190613af0565b905060008184612c7a9190613672565b90506000821115612c9057612c8f8583612dc1565b5b80925050506000600d60026101000a81548160ff02191690831515021790555092915050565b60006001600d60026101000a81548160ff021916908315150217905550600061271060045484612ce69190613bea565b612cf09190613af0565b905060008184612d009190613672565b90506000821115612d1657612d158583612dc1565b5b80925050506000600d60026101000a81548160ff02191690831515021790555092915050565b60006001600d60026101000a81548160ff0219169083151502179055506000612710600084612d6b9190613bea565b612d759190613af0565b905060008184612d859190613672565b90506000821115612d9b57612d9a8583612dc1565b5b80925050506000600d60026101000a81548160ff02191690831515021790555092915050565b6001600d60026101000a81548160ff0219169083151502179055508060096000828254612dee9190613572565b925050819055506000606460055483612e079190613bea565b612e119190613af0565b90506000606460065484612e259190613bea565b612e2f9190613af0565b90506000606460075485612e439190613bea565b612e4d9190613af0565b90506000831115612eaf5782600e60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ea79190613572565b925050819055505b6000821115612f285781600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f079190613572565b9250508190555081600b6000828254612f209190613572565b925050819055505b6000811115612fa15780600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f809190613572565b9250508190555080600a6000828254612f999190613572565b925050819055505b83600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ff09190613672565b92505081905550808284866130059190613672565b61300f9190613672565b6130199190613672565b600e6000737c983436362602ca3a38a7d518409e1f08b10c6673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461307b9190613572565b925050819055505050506000600d60026101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130de5780820151818401526020810190506130c3565b60008484015250505050565b6000601f19601f8301169050919050565b6000613106826130a4565b61311081856130af565b93506131208185602086016130c0565b613129816130ea565b840191505092915050565b6000602082019050818103600083015261314e81846130fb565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131868261315b565b9050919050565b6131968161317b565b81146131a157600080fd5b50565b6000813590506131b38161318d565b92915050565b6000602082840312156131cf576131ce613156565b5b60006131dd848285016131a4565b91505092915050565b60008115159050919050565b6131fb816131e6565b82525050565b600060208201905061321660008301846131f2565b92915050565b6000819050919050565b61322f8161321c565b811461323a57600080fd5b50565b60008135905061324c81613226565b92915050565b6000806040838503121561326957613268613156565b5b6000613277858286016131a4565b92505060206132888582860161323d565b9150509250929050565b61329b8161321c565b82525050565b60006020820190506132b66000830184613292565b92915050565b6000806000606084860312156132d5576132d4613156565b5b60006132e3868287016131a4565b93505060206132f4868287016131a4565b92505060406133058682870161323d565b9150509250925092565b600060ff82169050919050565b6133258161330f565b82525050565b6000602082019050613340600083018461331c565b92915050565b61334f8161317b565b82525050565b600060208201905061336a6000830184613346565b92915050565b613379816131e6565b811461338457600080fd5b50565b60008135905061339681613370565b92915050565b6000602082840312156133b2576133b1613156565b5b60006133c084828501613387565b91505092915050565b600080604083850312156133e0576133df613156565b5b60006133ee858286016131a4565b92505060206133ff85828601613387565b9150509250929050565b60006020828403121561341f5761341e613156565b5b600061342d8482850161323d565b91505092915050565b60008060006060848603121561344f5761344e613156565b5b600061345d8682870161323d565b935050602061346e8682870161323d565b925050604061347f8682870161323d565b9150509250925092565b600080604083850312156134a05761349f613156565b5b60006134ae858286016131a4565b92505060206134bf858286016131a4565b9150509250929050565b6000819050919050565b60006134ee6134e96134e48461315b565b6134c9565b61315b565b9050919050565b6000613500826134d3565b9050919050565b6000613512826134f5565b9050919050565b61352281613507565b82525050565b600060208201905061353d6000830184613519565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061357d8261321c565b91506135888361321c565b92508282019050808211156135a05761359f613543565b5b92915050565b60006080820190506135bb60008301876131f2565b6135c860208301866131f2565b6135d56040830185613346565b6135e26060830184613292565b95945050505050565b6000815190506135fa8161318d565b92915050565b60006020828403121561361657613615613156565b5b6000613624848285016135eb565b91505092915050565b60006080820190506136426000830187613292565b61364f6020830186613292565b61365c6040830185613346565b6136696060830184613292565b95945050505050565b600061367d8261321c565b91506136888361321c565b92508282039050818111156136a05761369f613543565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006137026025836130af565b915061370d826136a6565b604082019050919050565b60006020820190508181036000830152613731816136f5565b9050919050565b7f546f74616c206665652070657263656e74616765206578636565647320313030600082015250565b600061376e6020836130af565b915061377982613738565b602082019050919050565b6000602082019050818103600083015261379d81613761565b9050919050565b60006080820190506137b96000830187613346565b6137c66020830186613346565b6137d36040830185613346565b6137e06060830184613292565b95945050505050565b60006040820190506137fe6000830185613346565b61380b6020830184613346565b9392505050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613848601d836130af565b915061385382613812565b602082019050919050565b600060208201905081810360008301526138778161383b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138da6026836130af565b91506138e58261387e565b604082019050919050565b60006020820190508181036000830152613909816138cd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061399361398e6139898461396e565b6134c9565b61321c565b9050919050565b6139a381613978565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139de8161317b565b82525050565b60006139f083836139d5565b60208301905092915050565b6000602082019050919050565b6000613a14826139a9565b613a1e81856139b4565b9350613a29836139c5565b8060005b83811015613a5a578151613a4188826139e4565b9750613a4c836139fc565b925050600181019050613a2d565b5085935050505092915050565b600060a082019050613a7c6000830188613292565b613a89602083018761399a565b8181036040830152613a9b8186613a09565b9050613aaa6060830185613346565b613ab76080830184613292565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613afb8261321c565b9150613b068361321c565b925082613b1657613b15613ac1565b5b828204905092915050565b600060c082019050613b366000830189613346565b613b436020830188613292565b613b50604083018761399a565b613b5d606083018661399a565b613b6a6080830185613346565b613b7760a0830184613292565b979650505050505050565b600081519050613b9181613226565b92915050565b600080600060608486031215613bb057613baf613156565b5b6000613bbe86828701613b82565b9350506020613bcf86828701613b82565b9250506040613be086828701613b82565b9150509250925092565b6000613bf58261321c565b9150613c008361321c565b9250828202613c0e8161321c565b91508282048414831517613c2557613c24613543565b5b509291505056fea2646970667358221220c1b55c9b792b7b71131b18c195e1a21cab37bff5d7daaa3007bbb357fd494cb764736f6c63430008120033