6080604052601260ff16600a61001591906102c7565b633b9aca006100249190610311565b5f55348015610031575f80fd5b503360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5460015f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f546040516101559190610361565b60405180910390a361037a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156101e4578086048111156101c0576101bf610162565b5b60018516156101cf5780820291505b80810290506101dd8561018f565b94506101a4565b94509492505050565b5f826101fc57600190506102b7565b81610209575f90506102b7565b816001811461021f576002811461022957610258565b60019150506102b7565b60ff84111561023b5761023a610162565b5b8360020a91508482111561025257610251610162565b5b506102b7565b5060208310610133831016604e8410600b841016171561028d5782820a90508381111561028857610287610162565b5b6102b7565b61029a848484600161019b565b925090508184048111156102b1576102b0610162565b5b81810290505b9392505050565b5f819050919050565b5f6102d1826102be565b91506102dc836102be565b92506103097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846101ed565b905092915050565b5f61031b826102be565b9150610326836102be565b9250828202610334816102be565b9150828204841483151761034b5761034a610162565b5b5092915050565b61035b816102be565b82525050565b5f6020820190506103745f830184610352565b92915050565b610fe4806103875f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c806370a082311161006f57806370a0823114610165578063715018a6146101955780638da5cb5b1461019f57806395d89b41146101bd578063a9059cbb146101db578063dd62ed3e1461020b576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100f957806323b872dd14610117578063313ce56714610147575b5f80fd5b6100b361023b565b6040516100c09190610a4c565b60405180910390f35b6100e360048036038101906100de9190610afd565b610274565b6040516100f09190610b55565b60405180910390f35b61010161028a565b60405161010e9190610b7d565b60405180910390f35b610131600480360381019061012c9190610b96565b610292565b60405161013e9190610b55565b60405180910390f35b61014f610337565b60405161015c9190610c01565b60405180910390f35b61017f600480360381019061017a9190610c1a565b61033c565b60405161018c9190610b7d565b60405180910390f35b61019d610382565b005b6101a76104b7565b6040516101b49190610c54565b60405180910390f35b6101c56104dc565b6040516101d29190610a4c565b60405180910390f35b6101f560048036038101906101f09190610afd565b610515565b6040516102029190610b55565b60405180910390f35b61022560048036038101906102209190610c6d565b61052b565b6040516102329190610b7d565b60405180910390f35b6040518060400160405280600981526020017f42524554544d4f4f4e000000000000000000000000000000000000000000000081525081565b5f6102803384846105ad565b6001905092915050565b5f8054905090565b5f61029e848484610770565b61032c84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546103279190610cd8565b6105ad565b600190509392505050565b601281565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040890610d55565b60405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a25f60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600981526020017f42524554544d4f4f4e000000000000000000000000000000000000000000000081525081565b5f610521338484610770565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361061b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061290610dbd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068090610e25565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610b7d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d590610e8d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361084c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084390610ef5565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156108cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c390610f5d565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109189190610cd8565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461096b9190610f7b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109cf9190610b7d565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610a1e826109dc565b610a2881856109e6565b9350610a388185602086016109f6565b610a4181610a04565b840191505092915050565b5f6020820190508181035f830152610a648184610a14565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a9982610a70565b9050919050565b610aa981610a8f565b8114610ab3575f80fd5b50565b5f81359050610ac481610aa0565b92915050565b5f819050919050565b610adc81610aca565b8114610ae6575f80fd5b50565b5f81359050610af781610ad3565b92915050565b5f8060408385031215610b1357610b12610a6c565b5b5f610b2085828601610ab6565b9250506020610b3185828601610ae9565b9150509250929050565b5f8115159050919050565b610b4f81610b3b565b82525050565b5f602082019050610b685f830184610b46565b92915050565b610b7781610aca565b82525050565b5f602082019050610b905f830184610b6e565b92915050565b5f805f60608486031215610bad57610bac610a6c565b5b5f610bba86828701610ab6565b9350506020610bcb86828701610ab6565b9250506040610bdc86828701610ae9565b9150509250925092565b5f60ff82169050919050565b610bfb81610be6565b82525050565b5f602082019050610c145f830184610bf2565b92915050565b5f60208284031215610c2f57610c2e610a6c565b5b5f610c3c84828501610ab6565b91505092915050565b610c4e81610a8f565b82525050565b5f602082019050610c675f830184610c45565b92915050565b5f8060408385031215610c8357610c82610a6c565b5b5f610c9085828601610ab6565b9250506020610ca185828601610ab6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610ce282610aca565b9150610ced83610aca565b9250828203905081811115610d0557610d04610cab565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610d3f6017836109e6565b9150610d4a82610d0b565b602082019050919050565b5f6020820190508181035f830152610d6c81610d33565b9050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f610da7601d836109e6565b9150610db282610d73565b602082019050919050565b5f6020820190508181035f830152610dd481610d9b565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f610e0f601b836109e6565b9150610e1a82610ddb565b602082019050919050565b5f6020820190508181035f830152610e3c81610e03565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f610e77601e836109e6565b9150610e8282610e43565b602082019050919050565b5f6020820190508181035f830152610ea481610e6b565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f610edf601c836109e6565b9150610eea82610eab565b602082019050919050565b5f6020820190508181035f830152610f0c81610ed3565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f610f47601f836109e6565b9150610f5282610f13565b602082019050919050565b5f6020820190508181035f830152610f7481610f3b565b9050919050565b5f610f8582610aca565b9150610f9083610aca565b9250828201905080821115610fa857610fa7610cab565b5b9291505056fea2646970667358221220089710d9d48c8b223049bb84ba0c7187165a4b03e9f1de012d7a0a175ef9fc3864736f6c634300081a0033