60806040525f6002557201a500a6b18995b03f44bb040a5ffc28e45cb060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f6101000a81548160ff02191690831515021790555034801562000080575f80fd5b5060405162000fc738038062000fc78339818101604052810190620000a6919062000263565b815f9081620000b691906200051d565b508060019081620000c891906200051d565b506509184e72a000600481905550505062000601565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200013f82620000f7565b810181811067ffffffffffffffff8211171562000161576200016062000107565b5b80604052505050565b5f62000175620000de565b905062000183828262000134565b919050565b5f67ffffffffffffffff821115620001a557620001a462000107565b5b620001b082620000f7565b9050602081019050919050565b5f5b83811015620001dc578082015181840152602081019050620001bf565b5f8484015250505050565b5f620001fd620001f78462000188565b6200016a565b9050828152602081018484840111156200021c576200021b620000f3565b5b62000229848285620001bd565b509392505050565b5f82601f830112620002485762000247620000ef565b5b81516200025a848260208601620001e7565b91505092915050565b5f80604083850312156200027c576200027b620000e7565b5b5f83015167ffffffffffffffff8111156200029c576200029b620000eb565b5b620002aa8582860162000231565b925050602083015167ffffffffffffffff811115620002ce57620002cd620000eb565b5b620002dc8582860162000231565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200033557607f821691505b6020821081036200034b576200034a620002f0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003af7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000372565b620003bb868362000372565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000405620003ff620003f984620003d3565b620003dc565b620003d3565b9050919050565b5f819050919050565b6200042083620003e5565b620004386200042f826200040c565b8484546200037e565b825550505050565b5f90565b6200044e62000440565b6200045b81848462000415565b505050565b5b818110156200048257620004765f8262000444565b60018101905062000461565b5050565b601f821115620004d1576200049b8162000351565b620004a68462000363565b81016020851015620004b6578190505b620004ce620004c58562000363565b83018262000460565b50505b505050565b5f82821c905092915050565b5f620004f35f1984600802620004d6565b1980831691505092915050565b5f6200050d8383620004e2565b9150826002028217905092915050565b6200052882620002e6565b67ffffffffffffffff81111562000544576200054362000107565b5b6200055082546200031d565b6200055d82828562000486565b5f60209050601f83116001811462000593575f84156200057e578287015190505b6200058a858262000500565b865550620005f9565b601f198416620005a38662000351565b5f5b82811015620005cc57848901518255600182019150602085019450602081019050620005a5565b86831015620005ec5784890151620005e8601f891682620004e2565b8355505b6001600288020188555050505b505050505050565b6109b8806200060f5f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c806344df8e701161006457806344df8e701461010b5780636a6278421461011557806370a082311461013157806395d89b4114610161578063ea66696c1461017f57610091565b806306fdde031461009557806318160ddd146100b3578063238ceb2a146100d1578063313ce567146100ed575b5f80fd5b61009d61019b565b6040516100aa91906105be565b60405180910390f35b6100bb61022a565b6040516100c891906105f6565b60405180910390f35b6100eb60048036038101906100e691906107e4565b610230565b005b6100f56102f4565b6040516101029190610859565b60405180910390f35b6101136102fc565b005b61012f600480360381019061012a9190610872565b610318565b005b61014b60048036038101906101469190610872565b610385565b60405161015891906105f6565b60405180910390f35b610169610401565b60405161017691906105be565b60405180910390f35b610199600480360381019061019491906107e4565b610491565b005b60605f80546101a9906108ca565b80601f01602080910402602001604051908101604052809291908181526020018280546101d5906108ca565b80156102205780601f106101f757610100808354040283529160200191610220565b820191905f5260205f20905b81548152906001019060200180831161020357829003601f168201915b5050505050905090565b60045481565b806002819055505f5b82518110156102ef57828181518110610255576102546108fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516102da91906105f6565b60405180910390a38080600101915050610239565b505050565b5f6001905090565b600160055f6101000a81548160ff021916908315150217905550565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef64e8d4a5100060405161037a9190610969565b60405180910390a350565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806103ec575060055f9054906101000a900460ff165b6103f8576002546103fa565b5f5b9050919050565b606060018054610410906108ca565b80601f016020809104026020016040519081016040528092919081815260200182805461043c906108ca565b80156104875780601f1061045e57610100808354040283529160200191610487565b820191905f5260205f20905b81548152906001019060200180831161046a57829003601f168201915b5050505050905090565b806002819055505f5b825181101561052f578281815181106104b6576104b56108fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161051a91906105f6565b60405180910390a3808060010191505061049a565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561056b578082015181840152602081019050610550565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61059082610534565b61059a818561053e565b93506105aa81856020860161054e565b6105b381610576565b840191505092915050565b5f6020820190508181035f8301526105d68184610586565b905092915050565b5f819050919050565b6105f0816105de565b82525050565b5f6020820190506106095f8301846105e7565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61065a82610576565b810181811067ffffffffffffffff8211171561067957610678610624565b5b80604052505050565b5f61068b61060f565b90506106978282610651565b919050565b5f67ffffffffffffffff8211156106b6576106b5610624565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106f4826106cb565b9050919050565b610704816106ea565b811461070e575f80fd5b50565b5f8135905061071f816106fb565b92915050565b5f6107376107328461069c565b610682565b9050808382526020820190506020840283018581111561075a576107596106c7565b5b835b81811015610783578061076f8882610711565b84526020840193505060208101905061075c565b5050509392505050565b5f82601f8301126107a1576107a0610620565b5b81356107b1848260208601610725565b91505092915050565b6107c3816105de565b81146107cd575f80fd5b50565b5f813590506107de816107ba565b92915050565b5f80604083850312156107fa576107f9610618565b5b5f83013567ffffffffffffffff8111156108175761081661061c565b5b6108238582860161078d565b9250506020610834858286016107d0565b9150509250929050565b5f60ff82169050919050565b6108538161083e565b82525050565b5f60208201905061086c5f83018461084a565b92915050565b5f6020828403121561088757610886610618565b5b5f61089484828501610711565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806108e157607f821691505b6020821081036108f4576108f361089d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61095361094e61094984610927565b610930565b6105de565b9050919050565b61096381610939565b82525050565b5f60208201905061097c5f83018461095a565b9291505056fea264697066735822122020e43570f279a256dc29b628c569ddf9add2576608fda01fb67fb76f106174ee64736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001123206f6c61736e6574776f726b2e6f7267000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b4f4c41532052657761726420546f6b656e202868747470733a2f2f6f6c61736e6574776f726b2e6f726729000000000000000000000000000000000000000000