0x608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a578063a9059cbb11610064578063a9059cbb1461024c578063c36956a01461027c578063c97c18211461029a578063dd62ed3e146102b6576100e8565b806370a08231146101e057806395d89b4114610210578063a8b089821461022e576100e8565b806318160ddd116100c657806318160ddd1461015857806321bbcbb11461017657806323b872dd14610192578063313ce567146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a5780630c1930451461013a575b5f80fd5b6100f46102e6565b60405161010191906111d0565b60405180910390f35b610124600480360381019061011f919061128e565b610376565b60405161013191906112e6565b60405180910390f35b61014261038c565b60405161014f919061130e565b60405180910390f35b610160610392565b60405161016d919061130e565b60405180910390f35b610190600480360381019061018b9190611467565b61039b565b005b6101ac60048036038101906101a791906114ae565b61047e565b6040516101b991906112e6565b60405180910390f35b6101ca61052a565b6040516101d79190611519565b60405180910390f35b6101fa60048036038101906101f59190611532565b61053e565b604051610207919061130e565b60405180910390f35b610218610584565b60405161022591906111d0565b60405180910390f35b610236610614565b604051610243919061156c565b60405180910390f35b6102666004803603810190610261919061128e565b6107ae565b60405161027391906112e6565b60405180910390f35b6102846107c4565b604051610291919061130e565b60405180910390f35b6102b460048036038101906102af9190611467565b6107ca565b005b6102d060048036038101906102cb9190611585565b6108ac565b6040516102dd919061130e565b60405180910390f35b6060600680546102f5906115f0565b80601f0160208091040260200160405190810160405280929190818152602001828054610321906115f0565b801561036c5780601f106103435761010080835404028352916020019161036c565b820191905f5260205f20905b81548152906001019060200180831161034f57829003601f168201915b5050505050905090565b5f61038233848461092e565b6001905092915050565b600d5481565b5f600354905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103f3575f80fd5b5f5b815181101561047a57600160055f84848151811061041657610415611620565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506103f5565b5050565b5f61048a848484610af1565b61051f843361051a8560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fb990919063ffffffff16565b61092e565b600190509392505050565b5f805f9054906101000a900460ff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060078054610593906115f0565b80601f01602080910402602001604051908101604052809291908181526020018280546105bf906115f0565b801561060a5780601f106105e15761010080835404028352916020019161060a565b820191905f5260205f20905b8154815290600101906020018083116105ed57829003601f168201915b5050505050905090565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a39190611661565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439053060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d9190611661565b6040518363ffffffff1660e01b815260040161076a92919061168c565b602060405180830381865afa158015610785573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a99190611661565b905090565b5f6107ba338484610af1565b6001905092915050565b600e5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610822575f80fd5b5f5b81518110156108a8575f60055f84848151811061084457610843611620565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610824565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099390611723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01906117b1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ae4919061130e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b569061183f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc4906118cd565b60405180910390fd5b5f8111610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c069061195b565b60405180910390fd5b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cb3575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015610ceb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610d2a5750610cfa610614565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610d83575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610dde57600e5460105411610dd757600c5460095411610da657600c54610dd2565b610dd1600f54610dc3600e54600a5461101690919063ffffffff16565b61101690919063ffffffff16565b5b610ddb565b600b545b90505b5f610e056064610df7848661101690919063ffffffff16565b61108d90919063ffffffff16565b9050610e6981610e5b8560015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110e990919063ffffffff16565b610fb990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610efa8360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fb990919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f9d8487610fb990919063ffffffff16565b604051610faa919061130e565b60405180910390a35050505050565b5f82821115610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906119c3565b60405180910390fd5b5f828461100a9190611a0e565b90508091505092915050565b5f808303611026575f9050611087565b5f82846110339190611a41565b90508284826110429190611aaf565b14611082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107990611b4f565b60405180910390fd5b809150505b92915050565b5f8082116110d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c790611bb7565b60405180910390fd5b5f82846110dd9190611aaf565b90508091505092915050565b5f8082846110f79190611bd5565b90508381101561113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390611c52565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561117d578082015181840152602081019050611162565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6111a282611146565b6111ac8185611150565b93506111bc818560208601611160565b6111c581611188565b840191505092915050565b5f6020820190508181035f8301526111e88184611198565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61122a82611201565b9050919050565b61123a81611220565b8114611244575f80fd5b50565b5f8135905061125581611231565b92915050565b5f819050919050565b61126d8161125b565b8114611277575f80fd5b50565b5f8135905061128881611264565b92915050565b5f80604083850312156112a4576112a36111f9565b5b5f6112b185828601611247565b92505060206112c28582860161127a565b9150509250929050565b5f8115159050919050565b6112e0816112cc565b82525050565b5f6020820190506112f95f8301846112d7565b92915050565b6113088161125b565b82525050565b5f6020820190506113215f8301846112ff565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61136182611188565b810181811067ffffffffffffffff821117156113805761137f61132b565b5b80604052505050565b5f6113926111f0565b905061139e8282611358565b919050565b5f67ffffffffffffffff8211156113bd576113bc61132b565b5b602082029050602081019050919050565b5f80fd5b5f6113e46113df846113a3565b611389565b90508083825260208201905060208402830185811115611407576114066113ce565b5b835b81811015611430578061141c8882611247565b845260208401935050602081019050611409565b5050509392505050565b5f82601f83011261144e5761144d611327565b5b813561145e8482602086016113d2565b91505092915050565b5f6020828403121561147c5761147b6111f9565b5b5f82013567ffffffffffffffff811115611499576114986111fd565b5b6114a58482850161143a565b91505092915050565b5f805f606084860312156114c5576114c46111f9565b5b5f6114d286828701611247565b93505060206114e386828701611247565b92505060406114f48682870161127a565b9150509250925092565b5f60ff82169050919050565b611513816114fe565b82525050565b5f60208201905061152c5f83018461150a565b92915050565b5f60208284031215611547576115466111f9565b5b5f61155484828501611247565b91505092915050565b61156681611220565b82525050565b5f60208201905061157f5f83018461155d565b92915050565b5f806040838503121561159b5761159a6111f9565b5b5f6115a885828601611247565b92505060206115b985828601611247565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061160757607f821691505b60208210810361161a576116196115c3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061165b81611231565b92915050565b5f60208284031215611676576116756111f9565b5b5f6116838482850161164d565b91505092915050565b5f60408201905061169f5f83018561155d565b6116ac602083018461155d565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61170d602483611150565b9150611718826116b3565b604082019050919050565b5f6020820190508181035f83015261173a81611701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61179b602283611150565b91506117a682611741565b604082019050919050565b5f6020820190508181035f8301526117c88161178f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611829602583611150565b9150611834826117cf565b604082019050919050565b5f6020820190508181035f8301526118568161181d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6118b7602383611150565b91506118c28261185d565b604082019050919050565b5f6020820190508181035f8301526118e4816118ab565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f611945602983611150565b9150611950826118eb565b604082019050919050565b5f6020820190508181035f83015261197281611939565b9050919050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f77005f82015250565b5f6119ad601f83611150565b91506119b882611979565b602082019050919050565b5f6020820190508181035f8301526119da816119a1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a188261125b565b9150611a238361125b565b9250828203905081811115611a3b57611a3a6119e1565b5b92915050565b5f611a4b8261125b565b9150611a568361125b565b9250828202611a648161125b565b91508282048414831517611a7b57611a7a6119e1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ab98261125b565b9150611ac48361125b565b925082611ad457611ad3611a82565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f611b39602283611150565b9150611b4482611adf565b604082019050919050565b5f6020820190508181035f830152611b6681611b2d565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611ba1601b83611150565b9150611bac82611b6d565b602082019050919050565b5f6020820190508181035f830152611bce81611b95565b9050919050565b5f611bdf8261125b565b9150611bea8361125b565b9250828201905080821115611c0257611c016119e1565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f77000000005f82015250565b5f611c3c601c83611150565b9150611c4782611c08565b602082019050919050565b5f6020820190508181035f830152611c6981611c30565b905091905056fea2646970667358221220a75ff090160d132621053b68c5a9b5131f960d95042715850f2a688cdaa540ed64736f6c63430008180033
0x608060405260095f806101000a81548160ff021916908360ff1602179055505f8054906101000a900460ff16600a620000399190620003e7565b6461ce1043406200004b919062000437565b600355737a250d5630b4cf539739df2c5dacb4c659f2488d60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280602081526020017f4f626957616e5472756d70436861726d616e6465723132333450657065496e7581525060069081620000e89190620006dc565b506040518060400160405280600681526020017f534f4c414e410000000000000000000000000000000000000000000000000000815250600790816200012f9190620006dc565b5060056009556003600a555f600b555f600c556005600d556003600e55600b600f555f60105534801562000161575f80fd5b503360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620002479190620007d1565b60405180910390a3620007ec565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620002df57808604811115620002b757620002b662000255565b5b6001851615620002c75780820291505b8081029050620002d78562000282565b945062000297565b94509492505050565b5f82620002f95760019050620003cb565b8162000308575f9050620003cb565b81600181146200032157600281146200032c5762000362565b6001915050620003cb565b60ff84111562000341576200034062000255565b5b8360020a9150848211156200035b576200035a62000255565b5b50620003cb565b5060208310610133831016604e8410600b84101617156200039c5782820a90508381111562000396576200039562000255565b5b620003cb565b620003ab84848460016200028e565b92509050818404811115620003c557620003c462000255565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620003f382620003d2565b91506200040083620003db565b92506200042f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620002e8565b905092915050565b5f6200044382620003d2565b91506200045083620003d2565b92508282026200046081620003d2565b915082820484148315176200047a576200047962000255565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620004fd57607f821691505b602082108103620005135762000512620004b8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200053a565b6200058386836200053a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620005c4620005be620005b884620003d2565b6200059b565b620003d2565b9050919050565b5f819050919050565b620005df83620005a4565b620005f7620005ee82620005cb565b84845462000546565b825550505050565b5f90565b6200060d620005ff565b6200061a818484620005d4565b505050565b5b818110156200064157620006355f8262000603565b60018101905062000620565b5050565b601f82111562000690576200065a8162000519565b62000665846200052b565b8101602085101562000675578190505b6200068d62000684856200052b565b8301826200061f565b50505b505050565b5f82821c905092915050565b5f620006b25f198460080262000695565b1980831691505092915050565b5f620006cc8383620006a1565b9150826002028217905092915050565b620006e78262000481565b67ffffffffffffffff8111156200070357620007026200048b565b5b6200070f8254620004e5565b6200071c82828562000645565b5f60209050601f83116001811462000752575f84156200073d578287015190505b620007498582620006bf565b865550620007b8565b601f198416620007628662000519565b5f5b828110156200078b5784890151825560018201915060208501945060208101905062000764565b86831015620007ab5784890151620007a7601f891682620006a1565b8355505b6001600288020188555050505b505050505050565b620007cb81620003d2565b82525050565b5f602082019050620007e65f830184620007c0565b92915050565b611ca680620007fa5f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a578063a9059cbb11610064578063a9059cbb1461024c578063c36956a01461027c578063c97c18211461029a578063dd62ed3e146102b6576100e8565b806370a08231146101e057806395d89b4114610210578063a8b089821461022e576100e8565b806318160ddd116100c657806318160ddd1461015857806321bbcbb11461017657806323b872dd14610192578063313ce567146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a5780630c1930451461013a575b5f80fd5b6100f46102e6565b60405161010191906111d0565b60405180910390f35b610124600480360381019061011f919061128e565b610376565b60405161013191906112e6565b60405180910390f35b61014261038c565b60405161014f919061130e565b60405180910390f35b610160610392565b60405161016d919061130e565b60405180910390f35b610190600480360381019061018b9190611467565b61039b565b005b6101ac60048036038101906101a791906114ae565b61047e565b6040516101b991906112e6565b60405180910390f35b6101ca61052a565b6040516101d79190611519565b60405180910390f35b6101fa60048036038101906101f59190611532565b61053e565b604051610207919061130e565b60405180910390f35b610218610584565b60405161022591906111d0565b60405180910390f35b610236610614565b604051610243919061156c565b60405180910390f35b6102666004803603810190610261919061128e565b6107ae565b60405161027391906112e6565b60405180910390f35b6102846107c4565b604051610291919061130e565b60405180910390f35b6102b460048036038101906102af9190611467565b6107ca565b005b6102d060048036038101906102cb9190611585565b6108ac565b6040516102dd919061130e565b60405180910390f35b6060600680546102f5906115f0565b80601f0160208091040260200160405190810160405280929190818152602001828054610321906115f0565b801561036c5780601f106103435761010080835404028352916020019161036c565b820191905f5260205f20905b81548152906001019060200180831161034f57829003601f168201915b5050505050905090565b5f61038233848461092e565b6001905092915050565b600d5481565b5f600354905090565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103f3575f80fd5b5f5b815181101561047a57600160055f84848151811061041657610415611620565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506103f5565b5050565b5f61048a848484610af1565b61051f843361051a8560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fb990919063ffffffff16565b61092e565b600190509392505050565b5f805f9054906101000a900460ff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060078054610593906115f0565b80601f01602080910402602001604051908101604052809291908181526020018280546105bf906115f0565b801561060a5780601f106105e15761010080835404028352916020019161060a565b820191905f5260205f20905b8154815290600101906020018083116105ed57829003601f168201915b5050505050905090565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a39190611661565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439053060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d9190611661565b6040518363ffffffff1660e01b815260040161076a92919061168c565b602060405180830381865afa158015610785573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a99190611661565b905090565b5f6107ba338484610af1565b6001905092915050565b600e5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610822575f80fd5b5f5b81518110156108a8575f60055f84848151811061084457610843611620565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610824565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099390611723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a01906117b1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ae4919061130e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b569061183f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc4906118cd565b60405180910390fd5b5f8111610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c069061195b565b60405180910390fd5b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cb3575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015610ceb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610d2a5750610cfa610614565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610d83575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610dde57600e5460105411610dd757600c5460095411610da657600c54610dd2565b610dd1600f54610dc3600e54600a5461101690919063ffffffff16565b61101690919063ffffffff16565b5b610ddb565b600b545b90505b5f610e056064610df7848661101690919063ffffffff16565b61108d90919063ffffffff16565b9050610e6981610e5b8560015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110e990919063ffffffff16565b610fb990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610efa8360015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fb990919063ffffffff16565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f9d8487610fb990919063ffffffff16565b604051610faa919061130e565b60405180910390a35050505050565b5f82821115610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff4906119c3565b60405180910390fd5b5f828461100a9190611a0e565b90508091505092915050565b5f808303611026575f9050611087565b5f82846110339190611a41565b90508284826110429190611aaf565b14611082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107990611b4f565b60405180910390fd5b809150505b92915050565b5f8082116110d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c790611bb7565b60405180910390fd5b5f82846110dd9190611aaf565b90508091505092915050565b5f8082846110f79190611bd5565b90508381101561113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390611c52565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561117d578082015181840152602081019050611162565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6111a282611146565b6111ac8185611150565b93506111bc818560208601611160565b6111c581611188565b840191505092915050565b5f6020820190508181035f8301526111e88184611198565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61122a82611201565b9050919050565b61123a81611220565b8114611244575f80fd5b50565b5f8135905061125581611231565b92915050565b5f819050919050565b61126d8161125b565b8114611277575f80fd5b50565b5f8135905061128881611264565b92915050565b5f80604083850312156112a4576112a36111f9565b5b5f6112b185828601611247565b92505060206112c28582860161127a565b9150509250929050565b5f8115159050919050565b6112e0816112cc565b82525050565b5f6020820190506112f95f8301846112d7565b92915050565b6113088161125b565b82525050565b5f6020820190506113215f8301846112ff565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61136182611188565b810181811067ffffffffffffffff821117156113805761137f61132b565b5b80604052505050565b5f6113926111f0565b905061139e8282611358565b919050565b5f67ffffffffffffffff8211156113bd576113bc61132b565b5b602082029050602081019050919050565b5f80fd5b5f6113e46113df846113a3565b611389565b90508083825260208201905060208402830185811115611407576114066113ce565b5b835b81811015611430578061141c8882611247565b845260208401935050602081019050611409565b5050509392505050565b5f82601f83011261144e5761144d611327565b5b813561145e8482602086016113d2565b91505092915050565b5f6020828403121561147c5761147b6111f9565b5b5f82013567ffffffffffffffff811115611499576114986111fd565b5b6114a58482850161143a565b91505092915050565b5f805f606084860312156114c5576114c46111f9565b5b5f6114d286828701611247565b93505060206114e386828701611247565b92505060406114f48682870161127a565b9150509250925092565b5f60ff82169050919050565b611513816114fe565b82525050565b5f60208201905061152c5f83018461150a565b92915050565b5f60208284031215611547576115466111f9565b5b5f61155484828501611247565b91505092915050565b61156681611220565b82525050565b5f60208201905061157f5f83018461155d565b92915050565b5f806040838503121561159b5761159a6111f9565b5b5f6115a885828601611247565b92505060206115b985828601611247565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061160757607f821691505b60208210810361161a576116196115c3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061165b81611231565b92915050565b5f60208284031215611676576116756111f9565b5b5f6116838482850161164d565b91505092915050565b5f60408201905061169f5f83018561155d565b6116ac602083018461155d565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61170d602483611150565b9150611718826116b3565b604082019050919050565b5f6020820190508181035f83015261173a81611701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61179b602283611150565b91506117a682611741565b604082019050919050565b5f6020820190508181035f8301526117c88161178f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611829602583611150565b9150611834826117cf565b604082019050919050565b5f6020820190508181035f8301526118568161181d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6118b7602383611150565b91506118c28261185d565b604082019050919050565b5f6020820190508181035f8301526118e4816118ab565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f611945602983611150565b9150611950826118eb565b604082019050919050565b5f6020820190508181035f83015261197281611939565b9050919050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f77005f82015250565b5f6119ad601f83611150565b91506119b882611979565b602082019050919050565b5f6020820190508181035f8301526119da816119a1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a188261125b565b9150611a238361125b565b9250828203905081811115611a3b57611a3a6119e1565b5b92915050565b5f611a4b8261125b565b9150611a568361125b565b9250828202611a648161125b565b91508282048414831517611a7b57611a7a6119e1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611ab98261125b565b9150611ac48361125b565b925082611ad457611ad3611a82565b5b828204905092915050565b7f536166654d6174683a20206d756c7469706c69636174696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f611b39602283611150565b9150611b4482611adf565b604082019050919050565b5f6020820190508181035f830152611b6681611b2d565b9050919050565b7f536166654d6174683a20206469766973696f6e206279207a65726f00000000005f82015250565b5f611ba1601b83611150565b9150611bac82611b6d565b602082019050919050565b5f6020820190508181035f830152611bce81611b95565b9050919050565b5f611bdf8261125b565b9150611bea8361125b565b9250828201905080821115611c0257611c016119e1565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f77000000005f82015250565b5f611c3c601c83611150565b9150611c4782611c08565b602082019050919050565b5f6020820190508181035f830152611c6981611c30565b905091905056fea2646970667358221220a75ff090160d132621053b68c5a9b5131f960d95042715850f2a688cdaa540ed64736f6c63430008180033