0x608060405234801561001057600080fd5b50604051610fa4380380610fa48339818101604052606081101561003357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505060008360405161006790610509565b808273ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156100a3573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff16638f283970846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561010f57600080fd5b505af1158015610123573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16633357162b6006848586876040518663ffffffff1660e01b8152600401808060200180602001806020018981526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481038452600c8152602001807f57686974654249542047454c0000000000000000000000000000000000000000815250602001848103835260058152602001807f574247454c000000000000000000000000000000000000000000000000000000815250602001848103825260038152602001807f47454c000000000000000000000000000000000000000000000000000000000081525060200198505050505050505050600060405180830381600087803b15801561029e57600080fd5b505af11580156102b2573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663d608ea646040518163ffffffff1660e01b815260040180806020018281038252600c8152602001807f57686974654249542047454c0000000000000000000000000000000000000000815250602001915050600060405180830381600087803b15801561033a57600080fd5b505af115801561034e573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16632fc81e0960006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156103bc57600080fd5b505af11580156103d0573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663430239b4600067ffffffffffffffff8111801561040857600080fd5b506040519080825280602002602001820160405280156104375781602001602082028036833780820191505090505b506040518263ffffffff1660e01b8152600401808060200180602001838103835284818151815260200191508051906020019060200280838360005b8381101561048e578082015181840152602081019050610473565b50505050905001838103825260058152602001807f574247454c0000000000000000000000000000000000000000000000000000008152506020019350505050600060405180830381600087803b1580156104e857600080fd5b505af11580156104fc573d6000803e3d6000fd5b5050505050505050610516565b610a418061056383390190565b603f806105246000396000f3fe6080604052600080fdfea2646970667358221220dba9858c746088a305d5d68ead6cd7a6cd4cad2f05d6b691c0a2055247301b9064736f6c634300060c0033608060405234801561001057600080fd5b50604051610a41380380610a418339818101604052602081101561003357600080fd5b810190808051906020019092919050505080807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c38060001b1461007257fe5b610081816100c460201b60201c565b507f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b8060001b146100ae57fe5b6100bd3361015b60201b60201c565b50506101d5565b6100d78161018a60201b6104c91760201c565b61012c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610a06603b913960400191505060405180910390fd5b60007f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b90508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b90508181555050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156101cc57506000801b8214155b92505050919050565b610822806101e46000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100595780634f1ef286146100aa5780635c60da1b146101435780638f28397014610184578063f851a440146101d55761004f565b5b610057610216565b005b34801561006557600080fd5b506100a86004803603602081101561007c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610230565b005b610141600480360360408110156100c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100fd57600080fd5b82018360208201111561010f57600080fd5b8035906020019184600183028401116401000000008311171561013157600080fd5b9091929391929390505050610285565b005b34801561014f57600080fd5b5061015861035e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019057600080fd5b506101d3600480360360208110156101a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061036d565b005b3480156101e157600080fd5b506101ea6104ba565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61021e610514565b61022e6102296105aa565b6105db565b565b610238610601565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102795761027481610632565b610282565b610281610216565b5b50565b61028d610601565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610350576102c983610632565b60003073ffffffffffffffffffffffffffffffffffffffff1634848460405180838380828437808301925050509250505060006040518083038185875af1925050503d8060008114610337576040519150601f19603f3d011682016040523d82523d6000602084013e61033c565b606091505b505090508061034a57600080fd5b50610359565b610358610216565b5b505050565b60006103686105aa565b905090565b610375610601565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156104ae57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561042e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061077c6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610457610601565b82604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a16104a98161068b565b6104b7565b6104b6610216565b5b50565b60006104c4610601565b905090565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561050b57506000801b8214155b92505050919050565b61051c610601565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061074a6032913960400191505060405180910390fd5b6105a86106ba565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050805491505090565b3660008037600080366000845af43d6000803e80600081146105fc573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b9050805491505090565b61063b816106bc565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60001b90508181555050565b565b6106c5816104c9565b61071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001806107b2603b913960400191505060405180910390fd5b60007f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360001b9050818155505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220881e388eb41458dd22c381519555523a9a6b5cbcc94376c26f8c66863031030064736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000000000000000000aa8145fe0081964f754fa247a5719f3712f3addf00000000000000000000000079e25aff50ab3fdc8fd3c4b8e906543c2bd798e2000000000000000000000000a4d4973bea6de79b773bed76c3e5062dc0fd4694