0x608060405234801561001057600080fd5b5060043610610112576000357c0100000000000000000000000000000000000000000000000000000000900480638da5cb5b116100b4578063ad54056d11610083578063ad54056d14610318578063b524f3a5146103c5578063dd62ed3e146103eb578063ec126c771461041957610112565b80638da5cb5b1461029457806395d89b41146102b8578063a457c2d7146102c0578063a9059cbb146102ec57610112565b806323b872dd116100f057806323b872dd146101ee578063313ce56714610224578063395093511461024257806370a082311461026e57610112565b806306fdde0314610117578063095ea7b31461019457806318160ddd146101d4575b600080fd5b61011f61044b565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610159578181015183820152602001610141565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c0600480360360408110156101aa57600080fd5b50600160a060020a0381351690602001356104e2565b604080519115158252519081900360200190f35b6101dc6104ff565b60408051918252519081900360200190f35b6101c06004803603606081101561020457600080fd5b50600160a060020a03813581169160208101359091169060400135610505565b61022c610593565b6040805160ff9092168252519081900360200190f35b6101c06004803603604081101561025857600080fd5b50600160a060020a03813516906020013561059c565b6101dc6004803603602081101561028457600080fd5b5035600160a060020a03166105f0565b61029c61060b565b60408051600160a060020a039092168252519081900360200190f35b61011f61063e565b6101c0600480360360408110156102d657600080fd5b50600160a060020a03813516906020013561069f565b6101c06004803603604081101561030257600080fd5b50600160a060020a03813516906020013561070e565b6101c06004803603604081101561032e57600080fd5b8135919081019060408101602082013564010000000081111561035057600080fd5b82018360208201111561036257600080fd5b8035906020019184600183028401116401000000008311171561038457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610722945050505050565b6101c0600480360360208110156103db57600080fd5b5035600160a060020a03166107f9565b6101dc6004803603604081101561040157600080fd5b50600160a060020a0381358116916020013516610968565b6101c06004803603606081101561042f57600080fd5b50803590600160a060020a036020820135169060400135610993565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d75780601f106104ac576101008083540402835291602001916104d7565b820191906000526020600020905b8154815290600101906020018083116104ba57829003601f168201915b505050505090505b90565b60006104f66104ef610a50565b8484610a54565b50600192915050565b60025490565b6000610512848484610b4a565b6105898461051e610a50565b610584856060604051908101604052806028815260200161147160289139600160a060020a038a1660009081526001602052604081209061055d610a50565b600160a060020a03168152602081019190915260400160002054919063ffffffff610cb116565b610a54565b5060019392505050565b60055460ff1690565b60006104f66105a9610a50565b8461058485600160006105ba610a50565b600160a060020a03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610d4b16565b600160a060020a031660009081526020819052604090205490565b60075460009043106106295750600654600160a060020a03166104df565b506005546101009004600160a060020a031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d75780601f106104ac576101008083540402835291602001916104d7565b60006104f66106ac610a50565b84610584856060604051908101604052806025815260200161152860259139600160006106d7610a50565b600160a060020a03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610cb116565b60006104f661071b610a50565b8484610b4a565b600061072d82610daf565b61073e610738610a50565b84611166565b610746610a50565b600160a060020a03167f9c92ad817e5474d30a4378deface765150479363a897b0590fbb12ae9d89396b84846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107b557818101518382015260200161079d565b50505050905090810190601f1680156107e25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a250600192915050565b600061080361060b565b600160a060020a03163314610862576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03821615156108c2576040805160e560020a62461bcd02815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b6108ca61060b565b6005805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03938416810291909117918290556006805473ffffffffffffffffffffffffffffffffffffffff19168685161790819055436133f40160078190556040519094918216939290920416907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a4506001919050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600061099d61060b565b600160a060020a031633146109fc576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b610a068383611268565b604080518381529051600160a060020a0385169186917f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d619181900360200190a35060019392505050565b3390565b600160a060020a0383161515610a9e5760405160e560020a62461bcd0281526004018080602001828103825260248152602001806114df6024913960400191505060405180910390fd5b600160a060020a0382161515610ae85760405160e560020a62461bcd0281526004018080602001828103825260228152602001806113e56022913960400191505060405180910390fd5b600160a060020a03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a0383161515610b945760405160e560020a62461bcd0281526004018080602001828103825260258152602001806114ba6025913960400191505060405180910390fd5b600160a060020a0382161515610bde5760405160e560020a62461bcd0281526004018080602001828103825260238152602001806113a06023913960400191505060405180910390fd5b610c22816060604051908101604052806026815260200161140760269139600160a060020a038616600090815260208190526040902054919063ffffffff610cb116565b600160a060020a038085166000908152602081905260408082209390935590841681522054610c57908263ffffffff610d4b16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d435760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d08578181015183820152602001610cf0565b50505050905090810190601f168015610d355780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610da8576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b8051601a811015610e0a576040805160e560020a62461bcd02815260206004820152601b60248201527f61646472657373206c656e67746820697320746f6f2073686f72740000000000604482015290519081900360640190fd5b6000826000815181101515610e1b57fe5b90602001015160f860020a900460f860020a0290506000836001815181101515610e4157fe5b90602001015160f860020a900460f860020a0290506000846002815181101515610e6757fe5b90602001015160f860020a900460f860020a0290506000856003815181101515610e8d57fe5b90602001015160f860020a900460f860020a0290506000866004815181101515610eb357fe5b90602001015160f860020a900460f860020a0290506000876005815181101515610ed957fe5b016020015160f860020a908190040290507f4200000000000000000000000000000000000000000000000000000000000000600160f860020a031987161480610f4b57507f4300000000000000000000000000000000000000000000000000000000000000600160f860020a03198716145b15610f98576022871115610f935760405160e560020a62461bcd02815260040180806020018281038252602281526020018061144f6022913960400191505060405180910390fd5b61115c565b7f3100000000000000000000000000000000000000000000000000000000000000600160f860020a03198216148015610ffa57507f6200000000000000000000000000000000000000000000000000000000000000600160f860020a03198716145b801561102f57507f6c00000000000000000000000000000000000000000000000000000000000000600160f860020a03198616145b801561106457507f6f00000000000000000000000000000000000000000000000000000000000000600160f860020a03198516145b801561109957507f6300000000000000000000000000000000000000000000000000000000000000600160f860020a03198416145b80156110ce57507f6b00000000000000000000000000000000000000000000000000000000000000600160f860020a03198316145b156111225786602d14806110e25750866041145b1515610f935760405160e560020a62461bcd0281526004018080602001828103825260258152602001806115036025913960400191505060405180910390fd5b60405160e560020a62461bcd02815260040180806020018281038252602281526020018061142d6022913960400191505060405180910390fd5b5050505050505050565b600160a060020a03821615156111b05760405160e560020a62461bcd0281526004018080602001828103825260218152602001806114996021913960400191505060405180910390fd5b6111f481606060405190810160405280602281526020016113c360229139600160a060020a038516600090815260208190526040902054919063ffffffff610cb116565b600160a060020a038316600090815260208190526040902055600254611220908263ffffffff61135d16565b600255604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600160a060020a03821615156112c8576040805160e560020a62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6002546112db908263ffffffff610d4b16565b600255600160a060020a038216600090815260208190526040902054611307908263ffffffff610d4b16565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000610da883836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cb156fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365756e737570706f727465642061646472657373206c656164696e672073796d626f6c6d61696e6e65742061646472657373206c656e67746820697320746f6f206c6f6e6745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573737365677769742061646472657373206c656e677468206973206e6f74203435206f7220363545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820640407681b9585622c49ecf915802516be246e2f226bcb478c201e6711af6f330029
0x60806040523480156200001157600080fd5b50604080518082018252600c81527f414e5920426c6f636b6e6574000000000000000000000000000000000000000060208083019182528351808501909452600684527f61424c4f434b0000000000000000000000000000000000000000000000000000908401528151919291600891620000909160039190620000da565b508151620000a6906004906020850190620000da565b506005805460ff90921660ff19909216919091179055505060068054600160a060020a03191633179055436007556200017f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011d57805160ff19168380011785556200014d565b828001600101855582156200014d579182015b828111156200014d57825182559160200191906001019062000130565b506200015b9291506200015f565b5090565b6200017c91905b808211156200015b576000815560010162000166565b90565b611578806200018f6000396000f3fe608060405234801561001057600080fd5b5060043610610112576000357c0100000000000000000000000000000000000000000000000000000000900480638da5cb5b116100b4578063ad54056d11610083578063ad54056d14610318578063b524f3a5146103c5578063dd62ed3e146103eb578063ec126c771461041957610112565b80638da5cb5b1461029457806395d89b41146102b8578063a457c2d7146102c0578063a9059cbb146102ec57610112565b806323b872dd116100f057806323b872dd146101ee578063313ce56714610224578063395093511461024257806370a082311461026e57610112565b806306fdde0314610117578063095ea7b31461019457806318160ddd146101d4575b600080fd5b61011f61044b565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610159578181015183820152602001610141565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c0600480360360408110156101aa57600080fd5b50600160a060020a0381351690602001356104e2565b604080519115158252519081900360200190f35b6101dc6104ff565b60408051918252519081900360200190f35b6101c06004803603606081101561020457600080fd5b50600160a060020a03813581169160208101359091169060400135610505565b61022c610593565b6040805160ff9092168252519081900360200190f35b6101c06004803603604081101561025857600080fd5b50600160a060020a03813516906020013561059c565b6101dc6004803603602081101561028457600080fd5b5035600160a060020a03166105f0565b61029c61060b565b60408051600160a060020a039092168252519081900360200190f35b61011f61063e565b6101c0600480360360408110156102d657600080fd5b50600160a060020a03813516906020013561069f565b6101c06004803603604081101561030257600080fd5b50600160a060020a03813516906020013561070e565b6101c06004803603604081101561032e57600080fd5b8135919081019060408101602082013564010000000081111561035057600080fd5b82018360208201111561036257600080fd5b8035906020019184600183028401116401000000008311171561038457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610722945050505050565b6101c0600480360360208110156103db57600080fd5b5035600160a060020a03166107f9565b6101dc6004803603604081101561040157600080fd5b50600160a060020a0381358116916020013516610968565b6101c06004803603606081101561042f57600080fd5b50803590600160a060020a036020820135169060400135610993565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d75780601f106104ac576101008083540402835291602001916104d7565b820191906000526020600020905b8154815290600101906020018083116104ba57829003601f168201915b505050505090505b90565b60006104f66104ef610a50565b8484610a54565b50600192915050565b60025490565b6000610512848484610b4a565b6105898461051e610a50565b610584856060604051908101604052806028815260200161147160289139600160a060020a038a1660009081526001602052604081209061055d610a50565b600160a060020a03168152602081019190915260400160002054919063ffffffff610cb116565b610a54565b5060019392505050565b60055460ff1690565b60006104f66105a9610a50565b8461058485600160006105ba610a50565b600160a060020a03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610d4b16565b600160a060020a031660009081526020819052604090205490565b60075460009043106106295750600654600160a060020a03166104df565b506005546101009004600160a060020a031690565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104d75780601f106104ac576101008083540402835291602001916104d7565b60006104f66106ac610a50565b84610584856060604051908101604052806025815260200161152860259139600160006106d7610a50565b600160a060020a03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610cb116565b60006104f661071b610a50565b8484610b4a565b600061072d82610daf565b61073e610738610a50565b84611166565b610746610a50565b600160a060020a03167f9c92ad817e5474d30a4378deface765150479363a897b0590fbb12ae9d89396b84846040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107b557818101518382015260200161079d565b50505050905090810190601f1680156107e25780820380516001836020036101000a031916815260200191505b50935050505060405180910390a250600192915050565b600061080361060b565b600160a060020a03163314610862576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03821615156108c2576040805160e560020a62461bcd02815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b6108ca61060b565b6005805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03938416810291909117918290556006805473ffffffffffffffffffffffffffffffffffffffff19168685161790819055436133f40160078190556040519094918216939290920416907fe1968d4263a733e2597ef67ea6ad267343bba5f8bf0f99d85190e06b05d824d990600090a4506001919050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600061099d61060b565b600160a060020a031633146109fc576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c79206f776e657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b610a068383611268565b604080518381529051600160a060020a0385169186917f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d619181900360200190a35060019392505050565b3390565b600160a060020a0383161515610a9e5760405160e560020a62461bcd0281526004018080602001828103825260248152602001806114df6024913960400191505060405180910390fd5b600160a060020a0382161515610ae85760405160e560020a62461bcd0281526004018080602001828103825260228152602001806113e56022913960400191505060405180910390fd5b600160a060020a03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a0383161515610b945760405160e560020a62461bcd0281526004018080602001828103825260258152602001806114ba6025913960400191505060405180910390fd5b600160a060020a0382161515610bde5760405160e560020a62461bcd0281526004018080602001828103825260238152602001806113a06023913960400191505060405180910390fd5b610c22816060604051908101604052806026815260200161140760269139600160a060020a038616600090815260208190526040902054919063ffffffff610cb116565b600160a060020a038085166000908152602081905260408082209390935590841681522054610c57908263ffffffff610d4b16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d435760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d08578181015183820152602001610cf0565b50505050905090810190601f168015610d355780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610da8576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b8051601a811015610e0a576040805160e560020a62461bcd02815260206004820152601b60248201527f61646472657373206c656e67746820697320746f6f2073686f72740000000000604482015290519081900360640190fd5b6000826000815181101515610e1b57fe5b90602001015160f860020a900460f860020a0290506000836001815181101515610e4157fe5b90602001015160f860020a900460f860020a0290506000846002815181101515610e6757fe5b90602001015160f860020a900460f860020a0290506000856003815181101515610e8d57fe5b90602001015160f860020a900460f860020a0290506000866004815181101515610eb357fe5b90602001015160f860020a900460f860020a0290506000876005815181101515610ed957fe5b016020015160f860020a908190040290507f4200000000000000000000000000000000000000000000000000000000000000600160f860020a031987161480610f4b57507f4300000000000000000000000000000000000000000000000000000000000000600160f860020a03198716145b15610f98576022871115610f935760405160e560020a62461bcd02815260040180806020018281038252602281526020018061144f6022913960400191505060405180910390fd5b61115c565b7f3100000000000000000000000000000000000000000000000000000000000000600160f860020a03198216148015610ffa57507f6200000000000000000000000000000000000000000000000000000000000000600160f860020a03198716145b801561102f57507f6c00000000000000000000000000000000000000000000000000000000000000600160f860020a03198616145b801561106457507f6f00000000000000000000000000000000000000000000000000000000000000600160f860020a03198516145b801561109957507f6300000000000000000000000000000000000000000000000000000000000000600160f860020a03198416145b80156110ce57507f6b00000000000000000000000000000000000000000000000000000000000000600160f860020a03198316145b156111225786602d14806110e25750866041145b1515610f935760405160e560020a62461bcd0281526004018080602001828103825260258152602001806115036025913960400191505060405180910390fd5b60405160e560020a62461bcd02815260040180806020018281038252602281526020018061142d6022913960400191505060405180910390fd5b5050505050505050565b600160a060020a03821615156111b05760405160e560020a62461bcd0281526004018080602001828103825260218152602001806114996021913960400191505060405180910390fd5b6111f481606060405190810160405280602281526020016113c360229139600160a060020a038516600090815260208190526040902054919063ffffffff610cb116565b600160a060020a038316600090815260208190526040902055600254611220908263ffffffff61135d16565b600255604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600160a060020a03821615156112c8576040805160e560020a62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6002546112db908263ffffffff610d4b16565b600255600160a060020a038216600090815260208190526040902054611307908263ffffffff610d4b16565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000610da883836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cb156fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365756e737570706f727465642061646472657373206c656164696e672073796d626f6c6d61696e6e65742061646472657373206c656e67746820697320746f6f206c6f6e6745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573737365677769742061646472657373206c656e677468206973206e6f74203435206f7220363545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820640407681b9585622c49ecf915802516be246e2f226bcb478c201e6711af6f330029