608060405261dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006009556000600a556000600c55737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506040516200408a3803806200408a833981810160405281019062000106919062000811565b83600190805190602001906200011e9291906200054b565b508260029080519060200190620001379291906200054b565b5081600360006101000a81548160ff021916908360ff16021790555073bd76df65196ac5d044bb23c477518d79fa7a9c616000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff16600a620001c5919062000a44565b81620001d2919062000a95565b600b81905550600360009054906101000a900460ff16600a620001f6919062000a44565b61520862000205919062000a95565b600c8190555073bd76df65196ac5d044bb23c477518d79fa7a9c61600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b54600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000539919062000b07565b60405180910390a35050505062000b88565b828054620005599062000b53565b90600052602060002090601f0160209004810192826200057d5760008555620005c9565b82601f106200059857805160ff1916838001178555620005c9565b82800160010185558215620005c9579182015b82811115620005c8578251825591602001919060010190620005ab565b5b509050620005d89190620005dc565b5090565b5b80821115620005f7576000816000905550600101620005dd565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620006648262000619565b810181811067ffffffffffffffff821117156200068657620006856200062a565b5b80604052505050565b60006200069b620005fb565b9050620006a9828262000659565b919050565b600067ffffffffffffffff821115620006cc57620006cb6200062a565b5b620006d78262000619565b9050602081019050919050565b60005b8381101562000704578082015181840152602081019050620006e7565b8381111562000714576000848401525b50505050565b6000620007316200072b84620006ae565b6200068f565b90508281526020810184848401111562000750576200074f62000614565b5b6200075d848285620006e4565b509392505050565b600082601f8301126200077d576200077c6200060f565b5b81516200078f8482602086016200071a565b91505092915050565b600060ff82169050919050565b620007b08162000798565b8114620007bc57600080fd5b50565b600081519050620007d081620007a5565b92915050565b6000819050919050565b620007eb81620007d6565b8114620007f757600080fd5b50565b6000815190506200080b81620007e0565b92915050565b600080600080608085870312156200082e576200082d62000605565b5b600085015167ffffffffffffffff8111156200084f576200084e6200060a565b5b6200085d8782880162000765565b945050602085015167ffffffffffffffff8111156200088157620008806200060a565b5b6200088f8782880162000765565b9350506040620008a287828801620007bf565b9250506060620008b587828801620007fa565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094f57808604811115620009275762000926620008c1565b5b6001851615620009375780820291505b80810290506200094785620008f0565b945062000907565b94509492505050565b6000826200096a576001905062000a3d565b816200097a576000905062000a3d565b81600181146200099357600281146200099e57620009d4565b600191505062000a3d565b60ff841115620009b357620009b2620008c1565b5b8360020a915084821115620009cd57620009cc620008c1565b5b5062000a3d565b5060208310610133831016604e8410600b841016171562000a0e5782820a90508381111562000a085762000a07620008c1565b5b62000a3d565b62000a1d8484846001620008fd565b9250905081840481111562000a375762000a36620008c1565b5b81810290505b9392505050565b600062000a5182620007d6565b915062000a5e8362000798565b925062000a8d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000958565b905092915050565b600062000aa282620007d6565b915062000aaf83620007d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aeb5762000aea620008c1565b5b828202905092915050565b62000b0181620007d6565b82525050565b600060208201905062000b1e600083018462000af6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b6c57607f821691505b60208210810362000b825762000b8162000b24565b5b50919050565b6134f28062000b986000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063a9059cbb1161006f578063a9059cbb14610437578063b2bdfa7b14610474578063c9567bf91461049f578063dd62ed3e146104b6578063e350a6c4146104f3578063f2fde38b1461051c57610140565b80638da5cb5b14610362578063914eb66a1461038d57806395d89b41146103a4578063a073d37f146103cf578063a457c2d7146103fa57610140565b806339509351116100fd57806339509351146102405780633ecad2711461027d578063557ed1ba146102ba57806370a08231146102e5578063761d22db146103225780638456cb591461034b57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610545565b6040516101679190612789565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612849565b6105d7565b6040516101a491906128a4565b60405180910390f35b3480156101b957600080fd5b506101c26105f5565b6040516101cf91906128ce565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906128e9565b6105ff565b60405161020c91906128a4565b60405180910390f35b34801561022157600080fd5b5061022a6106d9565b6040516102379190612958565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612849565b6106f0565b60405161027491906128a4565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612973565b6107a3565b6040516102b191906128a4565b60405180910390f35b3480156102c657600080fd5b506102cf6107c3565b6040516102dc91906128ce565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612973565b6107cb565b60405161031991906128ce565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612a05565b610814565b005b34801561035757600080fd5b5061036061094e565b005b34801561036e57600080fd5b50610377610a00565b6040516103849190612a61565b60405180910390f35b34801561039957600080fd5b506103a2610a29565b005b3480156103b057600080fd5b506103b9610b7c565b6040516103c69190612789565b60405180910390f35b3480156103db57600080fd5b506103e4610c0e565b6040516103f191906128ce565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190612849565b610c18565b60405161042e91906128a4565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190612849565b610ce5565b60405161046b91906128a4565b60405180910390f35b34801561048057600080fd5b50610489610d04565b6040516104969190612a61565b60405180910390f35b3480156104ab57600080fd5b506104b4610d28565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612a7c565b6111ab565b6040516104ea91906128ce565b60405180910390f35b3480156104ff57600080fd5b5061051a60048036038101906105159190612973565b611232565b005b34801561052857600080fd5b50610543600480360381019061053e9190612973565b61130b565b005b60606001805461055490612aeb565b80601f016020809104026020016040519081016040528092919081815260200182805461058090612aeb565b80156105cd5780601f106105a2576101008083540402835291602001916105cd565b820191906000526020600020905b8154815290600101906020018083116105b057829003601f168201915b5050505050905090565b60006105eb6105e46114cc565b84846114d4565b6001905092915050565b6000600b54905090565b600061060c84848461169d565b506106ce846106196114cc565b6106c98560405180606001604052806028815260200161347060289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067f6114cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0c9092919063ffffffff16565b6114d4565b600190509392505050565b6000600360009054906101000a900460ff16905090565b60006107996106fd6114cc565b84610794856006600061070e6114cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7090919063ffffffff16565b6114d4565b6001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61081c6114cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a090612b68565b60405180910390fd5b60005b82829050811015610949576001600760008585858181106108d0576108cf612b88565b5b90506020020160208101906108e59190612973565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061094190612be6565b9150506108ac565b505050565b6109566114cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90612b68565b60405180910390fd5b6001601060176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a316114cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612b68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610b8b90612aeb565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb790612aeb565b8015610c045780601f10610bd957610100808354040283529160200191610c04565b820191906000526020600020905b815481529060010190602001808311610be757829003601f168201915b5050505050905090565b6000600c54905090565b6000610cdb610c256114cc565b84610cd6856040518060600160405280602581526020016134986025913960066000610c4f6114cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0c9092919063ffffffff16565b6114d4565b6001905092915050565b6000610cf9610cf26114cc565b848461169d565b506001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d306114cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b68565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e559190612c43565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee09190612c43565b6040518363ffffffff1660e01b8152600401610efd929190612c70565b602060405180830381865afa158015610f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3e9190612c43565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110d1578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe39190612c43565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e9190612c43565b6040518363ffffffff1660e01b815260040161108b929190612c70565b6020604051808303816000875af11580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce9190612c43565b90505b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060156101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61123a6114cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be90612b68565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6113136114cc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612b68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690612d0b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a90612d9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612e2f565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169091906128ce565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490612ec1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177390612f53565b60405180910390fd5b600082116117bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b690612fe5565b60405180910390fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118635750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561195f57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119095750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561195e57601060179054906101000a900460ff1661195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195490613051565b60405180910390fd5b5b5b601060149054906101000a900460ff16156119865761197f848484611dce565b9050611d05565b6000611991306107cb565b9050601060149054906101000a900460ff161580156119fa5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a125750601060159054906101000a900460ff165b15611a7d57601060169054906101000a900460ff1615611a3257600c5490505b84600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a7c81611fa1565b5b611b06836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0c9092919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bec5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c0057611bfb86868661201f565b611c02565b835b9050611c5681600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cf691906128ce565b60405180910390a36001925050505b9392505050565b6000838311158290611d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4b9190612789565b60405180910390fd5b5060008385611d639190613071565b9050809150509392505050565b6000808284611d7f91906130a5565b905083811015611dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbb90613147565b60405180910390fd5b8091505092915050565b6000611e59826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0c9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7090919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8e91906128ce565b60405180910390a3600190509392505050565b6001601060146101000a81548160ff021916908315150217905550611fc581612247565b6000479050600081111561200057611fff600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612534565b5b506000601060146101000a81548160ff02191690831515021790555050565b60008060009050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120a7576120a060646120926009548661257f90919063ffffffff16565b6125f990919063ffffffff16565b9050612125565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612124576121216064612113600a548661257f90919063ffffffff16565b6125f990919063ffffffff16565b90505b5b600081111561222a5761218081600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7090919063ffffffff16565b600560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161222191906128ce565b60405180910390a35b61223d818461264390919063ffffffff16565b9150509392505050565b6000600367ffffffffffffffff81111561226457612263613167565b5b6040519080825280602002602001820160405280156122925781602001602082028036833780820191505090505b50905030816000815181106122aa576122a9612b88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061231b5761231a612b88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e69190612c43565b816002815181106123fa576123f9612b88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246130600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114d4565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124c5959493929190613299565b600060405180830381600087803b1580156124df57600080fd5b505af11580156124f3573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516125289291906132f3565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561257a573d6000803e3d6000fd5b505050565b600080830361259157600090506125f3565b6000828461259f9190613323565b90508284826125ae91906133ac565b146125ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e59061344f565b60405180910390fd5b809150505b92915050565b600061263b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061268d565b905092915050565b600061268583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d0c565b905092915050565b600080831182906126d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cb9190612789565b60405180910390fd5b50600083856126e391906133ac565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561272a57808201518184015260208101905061270f565b83811115612739576000848401525b50505050565b6000601f19601f8301169050919050565b600061275b826126f0565b61276581856126fb565b935061277581856020860161270c565b61277e8161273f565b840191505092915050565b600060208201905081810360008301526127a38184612750565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127e0826127b5565b9050919050565b6127f0816127d5565b81146127fb57600080fd5b50565b60008135905061280d816127e7565b92915050565b6000819050919050565b61282681612813565b811461283157600080fd5b50565b6000813590506128438161281d565b92915050565b600080604083850312156128605761285f6127ab565b5b600061286e858286016127fe565b925050602061287f85828601612834565b9150509250929050565b60008115159050919050565b61289e81612889565b82525050565b60006020820190506128b96000830184612895565b92915050565b6128c881612813565b82525050565b60006020820190506128e360008301846128bf565b92915050565b600080600060608486031215612902576129016127ab565b5b6000612910868287016127fe565b9350506020612921868287016127fe565b925050604061293286828701612834565b9150509250925092565b600060ff82169050919050565b6129528161293c565b82525050565b600060208201905061296d6000830184612949565b92915050565b600060208284031215612989576129886127ab565b5b6000612997848285016127fe565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126129c5576129c46129a0565b5b8235905067ffffffffffffffff8111156129e2576129e16129a5565b5b6020830191508360208202830111156129fe576129fd6129aa565b5b9250929050565b60008060208385031215612a1c57612a1b6127ab565b5b600083013567ffffffffffffffff811115612a3a57612a396127b0565b5b612a46858286016129af565b92509250509250929050565b612a5b816127d5565b82525050565b6000602082019050612a766000830184612a52565b92915050565b60008060408385031215612a9357612a926127ab565b5b6000612aa1858286016127fe565b9250506020612ab2858286016127fe565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b0357607f821691505b602082108103612b1657612b15612abc565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b526020836126fb565b9150612b5d82612b1c565b602082019050919050565b60006020820190508181036000830152612b8181612b45565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf182612813565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c2357612c22612bb7565b5b600182019050919050565b600081519050612c3d816127e7565b92915050565b600060208284031215612c5957612c586127ab565b5b6000612c6784828501612c2e565b91505092915050565b6000604082019050612c856000830185612a52565b612c926020830184612a52565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cf56026836126fb565b9150612d0082612c99565b604082019050919050565b60006020820190508181036000830152612d2481612ce8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d876024836126fb565b9150612d9282612d2b565b604082019050919050565b60006020820190508181036000830152612db681612d7a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e196022836126fb565b9150612e2482612dbd565b604082019050919050565b60006020820190508181036000830152612e4881612e0c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612eab6025836126fb565b9150612eb682612e4f565b604082019050919050565b60006020820190508181036000830152612eda81612e9e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f3d6023836126fb565b9150612f4882612ee1565b604082019050919050565b60006020820190508181036000830152612f6c81612f30565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fcf6029836126fb565b9150612fda82612f73565b604082019050919050565b60006020820190508181036000830152612ffe81612fc2565b9050919050565b7f6e6f742073746172740000000000000000000000000000000000000000000000600082015250565b600061303b6009836126fb565b915061304682613005565b602082019050919050565b6000602082019050818103600083015261306a8161302e565b9050919050565b600061307c82612813565b915061308783612813565b92508282101561309a57613099612bb7565b5b828203905092915050565b60006130b082612813565b91506130bb83612813565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130f0576130ef612bb7565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613131601b836126fb565b915061313c826130fb565b602082019050919050565b6000602082019050818103600083015261316081613124565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b60006131c56131c06131bb84613196565b6131a0565b612813565b9050919050565b6131d5816131aa565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613210816127d5565b82525050565b60006132228383613207565b60208301905092915050565b6000602082019050919050565b6000613246826131db565b61325081856131e6565b935061325b836131f7565b8060005b8381101561328c5781516132738882613216565b975061327e8361322e565b92505060018101905061325f565b5085935050505092915050565b600060a0820190506132ae60008301886128bf565b6132bb60208301876131cc565b81810360408301526132cd818661323b565b90506132dc6060830185612a52565b6132e960808301846128bf565b9695505050505050565b600060408201905061330860008301856128bf565b818103602083015261331a818461323b565b90509392505050565b600061332e82612813565b915061333983612813565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561337257613371612bb7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133b782612813565b91506133c283612813565b9250826133d2576133d161337d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134396021836126fb565b9150613444826133dd565b604082019050919050565b600060208201905081810360008301526134688161342c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122078122ff0a10eb043be4711e9d4fc29951210e228d5d04b037ab127c665c5e83864736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000001908b1000000000000000000000000000000000000000000000000000000000000000009437962657250455045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054350455045000000000000000000000000000000000000000000000000000000