0x608060405273f2de563bb1ce50eee847ebf22e155912b9d379e36000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e0e1b65c65964c1356d52056cb042ab618c241d9600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156100b957600080fd5b50611215806100c96000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063be9601651161005b578063be96016514610125578063ca8e197614610141578063e56000a41461015d578063f23a6e611461017957610088565b806301ffc9a71461008d5780630b620b81146100bd5780634922bc7b146100d9578063bc197c81146100f5575b600080fd5b6100a760048036038101906100a29190610db6565b6101a9565b6040516100b49190610fa9565b60405180910390f35b6100d760048036038101906100d29190610b3a565b610223565b005b6100f360048036038101906100ee9190610a1e565b610348565b005b61010f600480360381019061010a9190610c50565b61043c565b60405161011c9190610fc4565b60405180910390f35b61013f600480360381019061013a9190610a4b565b610451565b005b61015b60048036038101906101569190610ba1565b610585565b005b61017760048036038101906101729190610a1e565b6106b3565b005b610193600480360381019061018e9190610d1f565b6107a6565b6040516101a09190610fc4565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061021c575061021b826107bb565b5b9050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102ca5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6102d357600080fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b815260040161031093929190610f16565b600060405180830381600087803b15801561032a57600080fd5b505af115801561033e573d6000803e3d6000fd5b5050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103ef5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6103f857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600063bc197c8160e01b905095945050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f85750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61050157600080fd5b8873ffffffffffffffffffffffffffffffffffffffff16632eb2c2d689898989898989896040518963ffffffff1660e01b8152600401610548989796959493929190610ea8565b600060405180830381600087803b15801561056257600080fd5b505af1158015610576573d6000803e3d6000fd5b50505050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061062c5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61063557600080fd5b8673ffffffffffffffffffffffffffffffffffffffff1663f242432a8787878787876040518763ffffffff1660e01b815260040161067896959493929190610f4d565b600060405180830381600087803b15801561069257600080fd5b505af11580156106a6573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061075a5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61076357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600063f23a6e6160e01b905095945050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600061083861083384611004565b610fdf565b9050808382526020820190508285602086028201111561085b5761085a611170565b5b60005b8581101561088b57816108718882610a09565b84526020840193506020830192505060018101905061085e565b5050509392505050565b60006108a86108a384611030565b610fdf565b9050828152602081018484840111156108c4576108c3611175565b5b6108cf8482856110f7565b509392505050565b6000813590506108e68161119a565b92915050565b60008083601f8401126109025761090161116b565b5b8235905067ffffffffffffffff81111561091f5761091e611166565b5b60208301915083602082028301111561093b5761093a611170565b5b9250929050565b600082601f8301126109575761095661116b565b5b8135610967848260208601610825565b91505092915050565b60008135905061097f816111b1565b92915050565b60008083601f84011261099b5761099a61116b565b5b8235905067ffffffffffffffff8111156109b8576109b7611166565b5b6020830191508360018202830111156109d4576109d3611170565b5b9250929050565b600082601f8301126109f0576109ef61116b565b5b8135610a00848260208601610895565b91505092915050565b600081359050610a18816111c8565b92915050565b600060208284031215610a3457610a33611184565b5b6000610a42848285016108d7565b91505092915050565b600080600080600080600080600060c08a8c031215610a6d57610a6c611184565b5b6000610a7b8c828d016108d7565b9950506020610a8c8c828d016108d7565b9850506040610a9d8c828d016108d7565b97505060608a013567ffffffffffffffff811115610abe57610abd61117a565b5b610aca8c828d016108ec565b965096505060808a013567ffffffffffffffff811115610aed57610aec61117a565b5b610af98c828d016108ec565b945094505060a08a013567ffffffffffffffff811115610b1c57610b1b61117a565b5b610b288c828d01610985565b92509250509295985092959850929598565b60008060008060808587031215610b5457610b53611184565b5b6000610b62878288016108d7565b9450506020610b73878288016108d7565b9350506040610b84878288016108d7565b9250506060610b9587828801610a09565b91505092959194509250565b600080600080600080600060c0888a031215610bc057610bbf611184565b5b6000610bce8a828b016108d7565b9750506020610bdf8a828b016108d7565b9650506040610bf08a828b016108d7565b9550506060610c018a828b01610a09565b9450506080610c128a828b01610a09565b93505060a088013567ffffffffffffffff811115610c3357610c3261117a565b5b610c3f8a828b01610985565b925092505092959891949750929550565b600080600080600060a08688031215610c6c57610c6b611184565b5b6000610c7a888289016108d7565b9550506020610c8b888289016108d7565b945050604086013567ffffffffffffffff811115610cac57610cab61117a565b5b610cb888828901610942565b935050606086013567ffffffffffffffff811115610cd957610cd861117a565b5b610ce588828901610942565b925050608086013567ffffffffffffffff811115610d0657610d0561117a565b5b610d12888289016109db565b9150509295509295909350565b600080600080600060a08688031215610d3b57610d3a611184565b5b6000610d49888289016108d7565b9550506020610d5a888289016108d7565b9450506040610d6b88828901610a09565b9350506060610d7c88828901610a09565b925050608086013567ffffffffffffffff811115610d9d57610d9c61117a565b5b610da9888289016109db565b9150509295509295909350565b600060208284031215610dcc57610dcb611184565b5b6000610dda84828501610970565b91505092915050565b610dec81611083565b82525050565b6000610dfe8385611061565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610e3157610e3061117f565b5b602083029250610e428385846110f7565b82840190509392505050565b610e5781611095565b82525050565b610e66816110a1565b82525050565b6000610e788385611072565b9350610e858385846110f7565b610e8e83611189565b840190509392505050565b610ea2816110ed565b82525050565b600060a082019050610ebd600083018b610de3565b610eca602083018a610de3565b8181036040830152610edd81888a610df2565b90508181036060830152610ef2818688610df2565b90508181036080830152610f07818486610e6c565b90509998505050505050505050565b6000606082019050610f2b6000830186610de3565b610f386020830185610de3565b610f456040830184610e99565b949350505050565b600060a082019050610f626000830189610de3565b610f6f6020830188610de3565b610f7c6040830187610e99565b610f896060830186610e99565b8181036080830152610f9c818486610e6c565b9050979650505050505050565b6000602082019050610fbe6000830184610e4e565b92915050565b6000602082019050610fd96000830184610e5d565b92915050565b6000610fe9610ffa565b9050610ff58282611106565b919050565b6000604051905090565b600067ffffffffffffffff82111561101f5761101e611137565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561104b5761104a611137565b5b61105482611189565b9050602081019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061108e826110cd565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b61110f82611189565b810181811067ffffffffffffffff8211171561112e5761112d611137565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6111a381611083565b81146111ae57600080fd5b50565b6111ba816110a1565b81146111c557600080fd5b50565b6111d1816110ed565b81146111dc57600080fd5b5056fea2646970667358221220d6d4fb48ba7b537cf8923a1ba250c0387f3a1bbc268b032c552c8caad6a3e42c64736f6c63430008070033