60c06040526001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055506000600a60026101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600c81526020017f537472696b652047616d657300000000000000000000000000000000000000008152506040518060400160405280600681526020017f535452494b4500000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000ab0565b5080600490805190602001906200010092919062000ab0565b50505062000123620001176200065a60201b60201c565b6200066260201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a919062000bca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000bca565b6040518363ffffffff1660e01b8152600401620002e792919062000c0d565b6020604051808303816000875af115801562000307573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032d919062000bca565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060016014600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003cf60a05160016200072860201b60201c565b600080601490506000806028905060006b204fce5e3e2502611000000090506b06765c793fa10079d00000006007819055506b06765c793fa10079d00000006009819055506103e8600a8262000426919062000c73565b62000432919062000d03565b60088190555084600c8190555083600d81905550600d54600c5462000458919062000d3b565b600b8190555082600f8190555081601081905550601054600f546200047e919062000d3b565b600e819055507347ee973367b317dda28a8833e563e4a01797eda2600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004fb620004ed620007c960201b60201c565b6001620007f360201b60201c565b6200050e306001620007f360201b60201c565b6200052361dead6001620007f360201b60201c565b60016014600062000539620007c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016014600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064e33826200092d60201b60201c565b50505050505062000f5a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008036200065a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000829620007c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008799062000df9565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000921919062000e38565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620009a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009979062000ea5565b60405180910390fd5b620009b46000838362000aa660201b60201c565b8060026000828254620009c8919062000d3b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a1f919062000d3b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a86919062000ed8565b60405180910390a362000aa26000838362000aab60201b60201c565b5050565b505050565b505050565b82805462000abe9062000f24565b90600052602060002090601f01602090048101928262000ae2576000855562000b2e565b82601f1062000afd57805160ff191683800117855562000b2e565b8280016001018555821562000b2e579182015b8281111562000b2d57825182559160200191906001019062000b10565b5b50905062000b3d919062000b41565b5090565b5b8082111562000b5c57600081600090555060010162000b42565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b928262000b65565b9050919050565b62000ba48162000b85565b811462000bb057600080fd5b50565b60008151905062000bc48162000b99565b92915050565b60006020828403121562000be35762000be262000b60565b5b600062000bf38482850162000bb3565b91505092915050565b62000c078162000b85565b82525050565b600060408201905062000c24600083018562000bfc565b62000c33602083018462000bfc565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c808262000c3a565b915062000c8d8362000c3a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cc95762000cc862000c44565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d108262000c3a565b915062000d1d8362000c3a565b92508262000d305762000d2f62000cd4565b5b828204905092915050565b600062000d488262000c3a565b915062000d558362000c3a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d8d5762000d8c62000c44565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000de160208362000d98565b915062000dee8262000da9565b602082019050919050565b6000602082019050818103600083015262000e148162000dd2565b9050919050565b60008115159050919050565b62000e328162000e1b565b82525050565b600060208201905062000e4f600083018462000e27565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e8d601f8362000d98565b915062000e9a8262000e55565b602082019050919050565b6000602082019050818103600083015262000ec08162000e7e565b9050919050565b62000ed28162000c3a565b82525050565b600060208201905062000eef600083018462000ec7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f3d57607f821691505b6020821081141562000f545762000f5362000ef5565b5b50919050565b60805160a0516142b762000faa60003960008181610ea90152611399015260008181610c0201528181612d0701528181612de801528181612e0f01528181612eab0152612ed201526142b76000f3fe60806040526004361061026a5760003560e01c80638da5cb5b11610144578063c6616ba1116100b6578063e2f456051161007a578063e2f456051461096a578063eec1c69f14610995578063f11a24d3146109d2578063f2fde38b146109fd578063f637434214610a26578063f8b45b0514610a5157610271565b8063c6616ba114610871578063c8c8ebe41461089a578063d257b34f146108c5578063d85ba06314610902578063dd62ed3e1461092d57610271565b80639a7a23d6116101085780639a7a23d61461073d578063a457c2d714610766578063a9059cbb146107a3578063b62496f5146107e0578063bbc0c7421461081d578063c02466681461084857610271565b80638da5cb5b146106685780638ea5220f1461069357806392136913146106be578063924de9b7146106e957806395d89b411461071257610271565b806339509351116101dd5780636ddd1713116101a15780636ddd17131461056a57806370a0823114610595578063715018a6146105d2578063751039fc146105e95780637571336a146106145780637bce5a041461063d57610271565b8063395093511461046f57806349bd5a5e146104ac5780634a62bb65146104d75780634fbee193146105025780636a486a8e1461053f57610271565b806318160ddd1161022f57806318160ddd1461035d5780631a8145bb146103885780631f3fed8f146103b35780631f53ac02146103de57806323b872dd14610407578063313ce5671461044457610271565b806299d3861461027657806306fdde031461028d57806307866291146102b8578063095ea7b3146102f55780631694505e1461033257610271565b3661027157005b600080fd5b34801561028257600080fd5b5061028b610a7c565b005b34801561029957600080fd5b506102a2610b30565b6040516102af919061303a565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906130bf565b610bc2565b6040516102ec9190613107565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613158565b610be2565b6040516103299190613107565b60405180910390f35b34801561033e57600080fd5b50610347610c00565b60405161035491906131f7565b60405180910390f35b34801561036957600080fd5b50610372610c24565b60405161037f9190613221565b60405180910390f35b34801561039457600080fd5b5061039d610c2e565b6040516103aa9190613221565b60405180910390f35b3480156103bf57600080fd5b506103c8610c34565b6040516103d59190613221565b60405180910390f35b3480156103ea57600080fd5b50610405600480360381019061040091906130bf565b610c3a565b005b34801561041357600080fd5b5061042e6004803603810190610429919061323c565b610cfa565b60405161043b9190613107565b60405180910390f35b34801561045057600080fd5b50610459610df2565b60405161046691906132ab565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190613158565b610dfb565b6040516104a39190613107565b60405180910390f35b3480156104b857600080fd5b506104c1610ea7565b6040516104ce91906132d5565b60405180910390f35b3480156104e357600080fd5b506104ec610ecb565b6040516104f99190613107565b60405180910390f35b34801561050e57600080fd5b50610529600480360381019061052491906130bf565b610ede565b6040516105369190613107565b60405180910390f35b34801561054b57600080fd5b50610554610f34565b6040516105619190613221565b60405180910390f35b34801561057657600080fd5b5061057f610f3a565b60405161058c9190613107565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b791906130bf565b610f4d565b6040516105c99190613221565b60405180910390f35b3480156105de57600080fd5b506105e7610f95565b005b3480156105f557600080fd5b506105fe61101d565b60405161060b9190613107565b60405180910390f35b34801561062057600080fd5b5061063b6004803603810190610636919061331c565b6110bd565b005b34801561064957600080fd5b50610652611194565b60405161065f9190613221565b60405180910390f35b34801561067457600080fd5b5061067d61119a565b60405161068a91906132d5565b60405180910390f35b34801561069f57600080fd5b506106a86111c4565b6040516106b591906132d5565b60405180910390f35b3480156106ca57600080fd5b506106d36111ea565b6040516106e09190613221565b60405180910390f35b3480156106f557600080fd5b50610710600480360381019061070b919061335c565b6111f0565b005b34801561071e57600080fd5b50610727611289565b604051610734919061303a565b60405180910390f35b34801561074957600080fd5b50610764600480360381019061075f919061331c565b61131b565b005b34801561077257600080fd5b5061078d60048036038101906107889190613158565b611434565b60405161079a9190613107565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c59190613158565b61151f565b6040516107d79190613107565b60405180910390f35b3480156107ec57600080fd5b50610807600480360381019061080291906130bf565b61153d565b6040516108149190613107565b60405180910390f35b34801561082957600080fd5b5061083261155d565b60405161083f9190613107565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a919061331c565b611570565b005b34801561087d57600080fd5b5061089860048036038101906108939190613389565b611695565b005b3480156108a657600080fd5b506108af61175f565b6040516108bc9190613221565b60405180910390f35b3480156108d157600080fd5b506108ec60048036038101906108e791906133f0565b611765565b6040516108f99190613107565b60405180910390f35b34801561090e57600080fd5b506109176118ba565b6040516109249190613221565b60405180910390f35b34801561093957600080fd5b50610954600480360381019061094f919061341d565b6118c0565b6040516109619190613221565b60405180910390f35b34801561097657600080fd5b5061097f611947565b60405161098c9190613221565b60405180910390f35b3480156109a157600080fd5b506109bc60048036038101906109b79190613499565b61194d565b6040516109c99190613107565b60405180910390f35b3480156109de57600080fd5b506109e7611958565b6040516109f49190613221565b60405180910390f35b348015610a0957600080fd5b50610a246004803603810190610a1f91906130bf565b61195e565b005b348015610a3257600080fd5b50610a3b611a56565b604051610a489190613221565b60405180910390f35b348015610a5d57600080fd5b50610a66611a5c565b604051610a739190613221565b60405180910390f35b610a84611a62565b73ffffffffffffffffffffffffffffffffffffffff16610aa261119a565b73ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90613512565b60405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055506001600a60026101000a81548160ff021916908315150217905550565b606060038054610b3f90613561565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6b90613561565b8015610bb85780601f10610b8d57610100808354040283529160200191610bb8565b820191906000526020600020905b815481529060010190602001808311610b9b57829003601f168201915b5050505050905090565b60146020528060005260406000206000915054906101000a900460ff1681565b6000610bf6610bef611a62565b8484611a6a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60115481565b60125481565b610c42611a62565b73ffffffffffffffffffffffffffffffffffffffff16610c6061119a565b73ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90613512565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610d07848484611c35565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d52611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc990613605565b60405180910390fd5b610de685610dde611a62565b858403611a6a565b60019150509392505050565b60006012905090565b6000610e9d610e08611a62565b848460016000610e16611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989190613654565b611a6a565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a60009054906101000a900460ff1681565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e5481565b600a60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f9d611a62565b73ffffffffffffffffffffffffffffffffffffffff16610fbb61119a565b73ffffffffffffffffffffffffffffffffffffffff1614611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890613512565b60405180910390fd5b61101b6000612685565b565b6000611027611a62565b73ffffffffffffffffffffffffffffffffffffffff1661104561119a565b73ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109290613512565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001905090565b6110c5611a62565b73ffffffffffffffffffffffffffffffffffffffff166110e361119a565b73ffffffffffffffffffffffffffffffffffffffff1614611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090613512565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6111f8611a62565b73ffffffffffffffffffffffffffffffffffffffff1661121661119a565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613512565b60405180910390fd5b80600a60026101000a81548160ff02191690831515021790555050565b60606004805461129890613561565b80601f01602080910402602001604051908101604052809291908181526020018280546112c490613561565b80156113115780601f106112e657610100808354040283529160200191611311565b820191906000526020600020905b8154815290600101906020018083116112f457829003601f168201915b5050505050905090565b611323611a62565b73ffffffffffffffffffffffffffffffffffffffff1661134161119a565b73ffffffffffffffffffffffffffffffffffffffff1614611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90613512565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d9061371c565b60405180910390fd5b611430828261274b565b5050565b60008060016000611443611a62565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f7906137ae565b60405180910390fd5b61151461150b611a62565b85858403611a6a565b600191505092915050565b600061153361152c611a62565b8484611c35565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b600a60019054906101000a900460ff1681565b611578611a62565b73ffffffffffffffffffffffffffffffffffffffff1661159661119a565b73ffffffffffffffffffffffffffffffffffffffff16146115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390613512565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516116899190613107565b60405180910390a25050565b61169d611a62565b73ffffffffffffffffffffffffffffffffffffffff166116bb61119a565b73ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170890613512565b60405180910390fd5b83600c8190555082600d81905550600d54600c5461172f9190613654565b600b8190555081600f8190555080601081905550601054600f546117539190613654565b600e8190555050505050565b60075481565b600061176f611a62565b73ffffffffffffffffffffffffffffffffffffffff1661178d61119a565b73ffffffffffffffffffffffffffffffffffffffff16146117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613512565b60405180910390fd5b620186a060016117f1610c24565b6117fb91906137ce565b6118059190613857565b821015611847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183e906138fa565b60405180910390fd5b6103e86005611854610c24565b61185e91906137ce565b6118689190613857565b8211156118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a19061398c565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b600060019050919050565b600c5481565b611966611a62565b73ffffffffffffffffffffffffffffffffffffffff1661198461119a565b73ffffffffffffffffffffffffffffffffffffffff16146119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d190613512565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190613a1e565b60405180910390fd5b611a5381612685565b50565b600f5481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190613ab0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613b42565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c289190613221565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9c90613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0c90613c66565b60405180910390fd5b6000811415611d2f57611d2a838360006127ec565b612680565b600a60009054906101000a900460ff161561222a57611d4c61119a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dba5750611d8a61119a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611df35750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e2d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e465750600560149054906101000a900460ff16155b1561222957600a60019054906101000a900460ff16611f4057601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f005750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3690613cd2565b60405180910390fd5b5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fe35750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208a5760075481111561202d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202490613d64565b60405180910390fd5b60095461203983610f4d565b826120449190613654565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613dd0565b60405180910390fd5b612228565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561212d5750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561217c57600754811115612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e90613e62565b60405180910390fd5b612227565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612226576009546121d983610f4d565b826121e49190613654565b1115612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c90613dd0565b60405180910390fd5b5b5b5b5b5b600061223530610f4d565b90506000600854821015905080801561225a5750600a60029054906101000a900460ff165b80156122735750600560149054906101000a900460ff16155b80156122c95750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561231f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123755750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b9576001600560146101000a81548160ff02191690831515021790555061239d612a6d565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061246f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561247957600090505b6000811561267057601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124dc57506000600e54115b15612568576064600e54866124f191906137ce565b6124fb9190613857565b9050600e54600f548261250e91906137ce565b6125189190613857565b601160008282546125299190613654565b92505081905550600e546010548261254191906137ce565b61254b9190613857565b6012600082825461255c9190613654565b9250508190555061264c565b601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125c357506000600b54115b1561264b576064600b54866125d891906137ce565b6125e29190613857565b9050600b54600c54826125f591906137ce565b6125ff9190613857565b601160008282546126109190613654565b92505081905550600b54600d548261262891906137ce565b6126329190613857565b601260008282546126439190613654565b925050819055505b5b6000811115612661576126608730836127ec565b5b808561266d9190613e82565b94505b61267b8787876127ec565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561285c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285390613bd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c390613c66565b60405180910390fd5b6128d7838383612c5e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561295d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295490613f28565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129f09190613654565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a549190613221565b60405180910390a3612a67848484612c63565b50505050565b6000612a7830610f4d565b90506000601254601154612a8c9190613654565b9050600080831480612a9e5750600082145b15612aab57505050612c5c565b6014600854612aba91906137ce565b831115612ad3576014600854612ad091906137ce565b92505b600060028360115486612ae691906137ce565b612af09190613857565b612afa9190613857565b905060008185612b0a9190613e82565b90506000479050612b1a82612c68565b60008147612b289190613e82565b905060008660125483612b3b91906137ce565b612b459190613857565b905060008183612b559190613e82565b905060006011819055506000601281905550600086118015612b775750600081115b15612bc457612b868682612ea5565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601154604051612bbb93929190613f48565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612c0a90613fb0565b60006040518083038185875af1925050503d8060008114612c47576040519150601f19603f3d011682016040523d82523d6000602084013e612c4c565b606091505b5050809750505050505050505050505b565b505050565b505050565b6000600267ffffffffffffffff811115612c8557612c84613fc5565b5b604051908082528060200260200182016040528015612cb35781602001602082028036833780820191505090505b5090503081600081518110612ccb57612cca613ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d949190614038565b81600181518110612da857612da7613ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e0d307f000000000000000000000000000000000000000000000000000000000000000084611a6a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e6f95949392919061415e565b600060405180830381600087803b158015612e8957600080fd5b505af1158015612e9d573d6000803e3d6000fd5b505050505050565b612ed0307f000000000000000000000000000000000000000000000000000000000000000084611a6a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612f57969594939291906141b8565b60606040518083038185885af1158015612f75573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f9a919061422e565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fdb578082015181840152602081019050612fc0565b83811115612fea576000848401525b50505050565b6000601f19601f8301169050919050565b600061300c82612fa1565b6130168185612fac565b9350613026818560208601612fbd565b61302f81612ff0565b840191505092915050565b600060208201905081810360008301526130548184613001565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061308c82613061565b9050919050565b61309c81613081565b81146130a757600080fd5b50565b6000813590506130b981613093565b92915050565b6000602082840312156130d5576130d461305c565b5b60006130e3848285016130aa565b91505092915050565b60008115159050919050565b613101816130ec565b82525050565b600060208201905061311c60008301846130f8565b92915050565b6000819050919050565b61313581613122565b811461314057600080fd5b50565b6000813590506131528161312c565b92915050565b6000806040838503121561316f5761316e61305c565b5b600061317d858286016130aa565b925050602061318e85828601613143565b9150509250929050565b6000819050919050565b60006131bd6131b86131b384613061565b613198565b613061565b9050919050565b60006131cf826131a2565b9050919050565b60006131e1826131c4565b9050919050565b6131f1816131d6565b82525050565b600060208201905061320c60008301846131e8565b92915050565b61321b81613122565b82525050565b60006020820190506132366000830184613212565b92915050565b6000806000606084860312156132555761325461305c565b5b6000613263868287016130aa565b9350506020613274868287016130aa565b925050604061328586828701613143565b9150509250925092565b600060ff82169050919050565b6132a58161328f565b82525050565b60006020820190506132c0600083018461329c565b92915050565b6132cf81613081565b82525050565b60006020820190506132ea60008301846132c6565b92915050565b6132f9816130ec565b811461330457600080fd5b50565b600081359050613316816132f0565b92915050565b600080604083850312156133335761333261305c565b5b6000613341858286016130aa565b925050602061335285828601613307565b9150509250929050565b6000602082840312156133725761337161305c565b5b600061338084828501613307565b91505092915050565b600080600080608085870312156133a3576133a261305c565b5b60006133b187828801613143565b94505060206133c287828801613143565b93505060406133d387828801613143565b92505060606133e487828801613143565b91505092959194509250565b6000602082840312156134065761340561305c565b5b600061341484828501613143565b91505092915050565b600080604083850312156134345761343361305c565b5b6000613442858286016130aa565b9250506020613453858286016130aa565b9150509250929050565b600063ffffffff82169050919050565b6134768161345d565b811461348157600080fd5b50565b6000813590506134938161346d565b92915050565b6000602082840312156134af576134ae61305c565b5b60006134bd84828501613484565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134fc602083612fac565b9150613507826134c6565b602082019050919050565b6000602082019050818103600083015261352b816134ef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061357957607f821691505b6020821081141561358d5761358c613532565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006135ef602883612fac565b91506135fa82613593565b604082019050919050565b6000602082019050818103600083015261361e816135e2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061365f82613122565b915061366a83613122565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561369f5761369e613625565b5b828201905092915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613706603983612fac565b9150613711826136aa565b604082019050919050565b60006020820190508181036000830152613735816136f9565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613798602583612fac565b91506137a38261373c565b604082019050919050565b600060208201905081810360008301526137c78161378b565b9050919050565b60006137d982613122565b91506137e483613122565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561381d5761381c613625565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061386282613122565b915061386d83613122565b92508261387d5761387c613828565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006138e4603583612fac565b91506138ef82613888565b604082019050919050565b60006020820190508181036000830152613913816138d7565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613976603483612fac565b91506139818261391a565b604082019050919050565b600060208201905081810360008301526139a581613969565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a08602683612fac565b9150613a13826139ac565b604082019050919050565b60006020820190508181036000830152613a37816139fb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a9a602483612fac565b9150613aa582613a3e565b604082019050919050565b60006020820190508181036000830152613ac981613a8d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b2c602283612fac565b9150613b3782613ad0565b604082019050919050565b60006020820190508181036000830152613b5b81613b1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613bbe602583612fac565b9150613bc982613b62565b604082019050919050565b60006020820190508181036000830152613bed81613bb1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c50602383612fac565b9150613c5b82613bf4565b604082019050919050565b60006020820190508181036000830152613c7f81613c43565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613cbc601683612fac565b9150613cc782613c86565b602082019050919050565b60006020820190508181036000830152613ceb81613caf565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613d4e603583612fac565b9150613d5982613cf2565b604082019050919050565b60006020820190508181036000830152613d7d81613d41565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613dba601383612fac565b9150613dc582613d84565b602082019050919050565b60006020820190508181036000830152613de981613dad565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613e4c603683612fac565b9150613e5782613df0565b604082019050919050565b60006020820190508181036000830152613e7b81613e3f565b9050919050565b6000613e8d82613122565b9150613e9883613122565b925082821015613eab57613eaa613625565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613f12602683612fac565b9150613f1d82613eb6565b604082019050919050565b60006020820190508181036000830152613f4181613f05565b9050919050565b6000606082019050613f5d6000830186613212565b613f6a6020830185613212565b613f776040830184613212565b949350505050565b600081905092915050565b50565b6000613f9a600083613f7f565b9150613fa582613f8a565b600082019050919050565b6000613fbb82613f8d565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061403281613093565b92915050565b60006020828403121561404e5761404d61305c565b5b600061405c84828501614023565b91505092915050565b6000819050919050565b600061408a61408561408084614065565b613198565b613122565b9050919050565b61409a8161406f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140d581613081565b82525050565b60006140e783836140cc565b60208301905092915050565b6000602082019050919050565b600061410b826140a0565b61411581856140ab565b9350614120836140bc565b8060005b8381101561415157815161413888826140db565b9750614143836140f3565b925050600181019050614124565b5085935050505092915050565b600060a0820190506141736000830188613212565b6141806020830187614091565b81810360408301526141928186614100565b90506141a160608301856132c6565b6141ae6080830184613212565b9695505050505050565b600060c0820190506141cd60008301896132c6565b6141da6020830188613212565b6141e76040830187614091565b6141f46060830186614091565b61420160808301856132c6565b61420e60a0830184613212565b979650505050505050565b6000815190506142288161312c565b92915050565b6000806000606084860312156142475761424661305c565b5b600061425586828701614219565b935050602061426686828701614219565b925050604061427786828701614219565b915050925092509256fea2646970667358221220c00b6ba397deb5b2b9c858c5393f723d6e7cd3f2d35ccc7e0a8a116d13c27ea564736f6c634300080a0033