60806040525f600255738248270620aa532e4d64316017be5e873e37cc0960035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f6101000a81548160ff02191690831515021790555034801562000081575f80fd5b5060405162000fc838038062000fc88339818101604052810190620000a7919062000264565b815f9081620000b791906200051e565b508060019081620000c991906200051e565b506509184e72a000600481905550505062000602565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200014082620000f8565b810181811067ffffffffffffffff8211171562000162576200016162000108565b5b80604052505050565b5f62000176620000df565b905062000184828262000135565b919050565b5f67ffffffffffffffff821115620001a657620001a562000108565b5b620001b182620000f8565b9050602081019050919050565b5f5b83811015620001dd578082015181840152602081019050620001c0565b5f8484015250505050565b5f620001fe620001f88462000189565b6200016b565b9050828152602081018484840111156200021d576200021c620000f4565b5b6200022a848285620001be565b509392505050565b5f82601f830112620002495762000248620000f0565b5b81516200025b848260208601620001e8565b91505092915050565b5f80604083850312156200027d576200027c620000e8565b5b5f83015167ffffffffffffffff8111156200029d576200029c620000ec565b5b620002ab8582860162000232565b925050602083015167ffffffffffffffff811115620002cf57620002ce620000ec565b5b620002dd8582860162000232565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200033657607f821691505b6020821081036200034c576200034b620002f1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000373565b620003bc868362000373565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200040662000400620003fa84620003d4565b620003dd565b620003d4565b9050919050565b5f819050919050565b6200042183620003e6565b6200043962000430826200040d565b8484546200037f565b825550505050565b5f90565b6200044f62000441565b6200045c81848462000416565b505050565b5b818110156200048357620004775f8262000445565b60018101905062000462565b5050565b601f821115620004d2576200049c8162000352565b620004a78462000364565b81016020851015620004b7578190505b620004cf620004c68562000364565b83018262000461565b50505b505050565b5f82821c905092915050565b5f620004f45f1984600802620004d7565b1980831691505092915050565b5f6200050e8383620004e3565b9150826002028217905092915050565b6200052982620002e7565b67ffffffffffffffff81111562000545576200054462000108565b5b6200055182546200031e565b6200055e82828562000487565b5f60209050601f83116001811462000594575f84156200057f578287015190505b6200058b858262000501565b865550620005fa565b601f198416620005a48662000352565b5f5b82811015620005cd57848901518255600182019150602085019450602081019050620005a6565b86831015620005ed5784890151620005e9601f891682620004e3565b8355505b6001600288020188555050505b505050505050565b6109b880620006105f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c80636a627842116100645780636a627842146100f957806370a082311461011557806395d89b4114610145578063e64e765914610163578063ea66696c1461017f57610091565b806306fdde031461009557806318160ddd146100b3578063313ce567146100d157806344df8e70146100ef575b5f80fd5b61009d61019b565b6040516100aa91906105be565b60405180910390f35b6100bb61022a565b6040516100c891906105f6565b60405180910390f35b6100d9610230565b6040516100e6919061062a565b60405180910390f35b6100f7610238565b005b610113600480360381019061010e91906106ae565b610254565b005b61012f600480360381019061012a91906106ae565b6102c1565b60405161013c91906105f6565b60405180910390f35b61014d61033d565b60405161015a91906105be565b60405180910390f35b61017d60048036038101906101789190610843565b6103cd565b005b61019960048036038101906101949190610843565b610491565b005b60605f80546101a9906108ca565b80601f01602080910402602001604051908101604052809291908181526020018280546101d5906108ca565b80156102205780601f106101f757610100808354040283529160200191610220565b820191905f5260205f20905b81548152906001019060200180831161020357829003601f168201915b5050505050905090565b60045481565b5f6001905090565b600160055f6101000a81548160ff021916908315150217905550565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef64e8d4a510006040516102b6919061093c565b60405180910390a350565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610328575060055f9054906101000a900460ff165b61033457600254610336565b5f5b9050919050565b60606001805461034c906108ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610378906108ca565b80156103c35780601f1061039a576101008083540402835291602001916103c3565b820191905f5260205f20905b8154815290600101906020018083116103a657829003601f168201915b5050505050905090565b806002819055505f5b825181101561048c578281815181106103f2576103f1610955565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161047791906105f6565b60405180910390a380806001019150506103d6565b505050565b806002819055505f5b825181101561052f578281815181106104b6576104b5610955565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161051a91906105f6565b60405180910390a3808060010191505061049a565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561056b578082015181840152602081019050610550565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61059082610534565b61059a818561053e565b93506105aa81856020860161054e565b6105b381610576565b840191505092915050565b5f6020820190508181035f8301526105d68184610586565b905092915050565b5f819050919050565b6105f0816105de565b82525050565b5f6020820190506106095f8301846105e7565b92915050565b5f60ff82169050919050565b6106248161060f565b82525050565b5f60208201905061063d5f83018461061b565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61067d82610654565b9050919050565b61068d81610673565b8114610697575f80fd5b50565b5f813590506106a881610684565b92915050565b5f602082840312156106c3576106c261064c565b5b5f6106d08482850161069a565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61071382610576565b810181811067ffffffffffffffff82111715610732576107316106dd565b5b80604052505050565b5f610744610643565b9050610750828261070a565b919050565b5f67ffffffffffffffff82111561076f5761076e6106dd565b5b602082029050602081019050919050565b5f80fd5b5f61079661079184610755565b61073b565b905080838252602082019050602084028301858111156107b9576107b8610780565b5b835b818110156107e257806107ce888261069a565b8452602084019350506020810190506107bb565b5050509392505050565b5f82601f830112610800576107ff6106d9565b5b8135610810848260208601610784565b91505092915050565b610822816105de565b811461082c575f80fd5b50565b5f8135905061083d81610819565b92915050565b5f80604083850312156108595761085861064c565b5b5f83013567ffffffffffffffff81111561087657610875610650565b5b610882858286016107ec565b92505060206108938582860161082f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806108e157607f821691505b6020821081036108f4576108f361089d565b5b50919050565b5f819050919050565b5f819050919050565b5f61092661092161091c846108fa565b610903565b6105de565b9050919050565b6109368161090c565b82525050565b5f60208201905061094f5f83018461092d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122054127684b6981b6d43bc0a68d0b04a47e47d6bfc7ec2daef2fac9820e613a0e964736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002321204445565645204769766561776179205469636b6574207c2064657676652e6e6574000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000214445565645204769766561776179205469636b6574207c2064657676652e6e657400000000000000000000000000000000000000000000000000000000000000