0x608060405234801561001057600080fd5b50600436106103785760003560e01c8063854ab6df116101d3578063c17b107111610104578063e2bbb158116100a2578063f2fde38b1161007c578063f2fde38b14610adc578063f851a44014610b02578063f99bab2414610b0a578063fdb5a03e14610b1257610378565b8063e2bbb15814610a94578063e5ec14d414610ab7578063e8b5e51f14610ad457610378565b8063ce25aa79116100de578063ce25aa79146109b5578063d0427eb7146109bd578063db2e21bc14610a5e578063dd62ed3e14610a6657610378565b8063c17b10711461096a578063c757483914610987578063c7b9d5301461098f57610378565b8063a457c2d711610171578063a8602fea1161014b578063a8602fea14610908578063a8c62e761461092e578063a9059cbb14610936578063bd244af41461096257610378565b8063a457c2d7146108b7578063a58f22b1146108e3578063a6478c1f146108eb57610378565b80638da5cb5b116101ad5780638da5cb5b146108975780639367b30e1461089f5780639580c4bc146108a757806395d89b41146108af57610378565b8063854ab6df1461084c57806385d6bb81146108545780638ce418f91461087a57610378565b8063441a3e70116102ad578063704b6c021161024b578063733199751161022557806373319975146107a5578063737ea0ad146107ce57806378fe08d51461083c5780637da0a8771461084457610378565b8063704b6c021461075157806370a0823114610777578063715018a61461079d57610378565b8063486ff0cd11610287578063486ff0cd146106b55780634f64b2be146106bd578063572b6c051461070257806358acff8f1461072857610378565b8063441a3e70146106825780634626402b146106a5578063465fc5d2146106ad57610378565b8063238b15981161031a578063251c1aa3116102f4578063251c1aa3146105c2578063313ce567146105ca57806334100fc4146105e8578063395093511461065657610378565b8063238b15981461056757806323b872dd14610584578063242c8e69146105ba57610378565b80631460b505116103565780631460b5051461046257806318160ddd146105035780631a8f0c0a1461051d5780631fe4a6861461054357610378565b806306fdde031461037d578063095ea7b3146103fa5780630d8b76a81461043a575b600080fd5b610385610b1a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103bf5781810151838201526020016103a7565b50505050905090810190601f1680156103ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104266004803603604081101561041057600080fd5b506001600160a01b038135169060200135610bb1565b604080519115158252519081900360200190f35b6104606004803603602081101561045057600080fd5b50356001600160a01b0316610bcf565b005b6104606004803603602081101561047857600080fd5b810190602081018135600160201b81111561049257600080fd5b8201836020820111156104a457600080fd5b803590602001918460208302840111600160201b831117156104c557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c53945050505050565b61050b610d40565b60408051918252519081900360200190f35b6104606004803603602081101561053357600080fd5b50356001600160a01b0316610d46565b61054b610e28565b604080516001600160a01b039092168252519081900360200190f35b61050b6004803603602081101561057d57600080fd5b5035610e37565b6104266004803603606081101561059a57600080fd5b506001600160a01b03813581169160208101359091169060400135610e58565b61050b610ee0565b61050b610ee7565b6105d2610eed565b6040805160ff9092168252519081900360200190f35b610460600480360360208110156105fe57600080fd5b810190602081018135600160201b81111561061857600080fd5b82018360208201111561062a57600080fd5b803590602001918460208302840111600160201b8311171561064b57600080fd5b509092509050610ef6565b6104266004803603604081101561066c57600080fd5b506001600160a01b03813516906020013561113a565b6104606004803603604081101561069857600080fd5b5080359060200135611188565b61054b61148a565b61054b611499565b6103856114a8565b6106da600480360360208110156106d357600080fd5b50356114c3565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6104266004803603602081101561071857600080fd5b50356001600160a01b03166114ee565b6104606004803603606081101561073e57600080fd5b5080359060208101359060400135611505565b6104606004803603602081101561076757600080fd5b50356001600160a01b03166116cb565b61050b6004803603602081101561078d57600080fd5b50356001600160a01b031661174f565b61046061176a565b610460600480360360608110156107bb57600080fd5b508035906020810135906040013561181c565b610460600480360360208110156107e457600080fd5b810190602081018135600160201b8111156107fe57600080fd5b82018360208201111561081057600080fd5b803590602001918460208302840111600160201b8311171561083157600080fd5b5090925090506118e0565b61050b611aa3565b61054b611aa9565b610426611ab8565b6104606004803603602081101561086a57600080fd5b50356001600160a01b0316611ac8565b6104606004803603602081101561089057600080fd5b5035611b4c565b61054b611c3d565b61050b611c51565b610460611c57565b610385612026565b610426600480360360408110156108cd57600080fd5b506001600160a01b038135169060200135612087565b6104606120ef565b6104606004803603602081101561090157600080fd5b5035612586565b6104606004803603602081101561091e57600080fd5b50356001600160a01b0316612661565b61054b6126e5565b6104266004803603604081101561094c57600080fd5b506001600160a01b0381351690602001356126f4565b61050b612708565b6104606004803603602081101561098057600080fd5b5035612936565b61054b612a27565b610460600480360360208110156109a557600080fd5b50356001600160a01b0316612a36565b61050b612acb565b610460600480360360208110156109d357600080fd5b810190602081018135600160201b8111156109ed57600080fd5b8201836020820111156109ff57600080fd5b803590602001918460208302840111600160201b83111715610a2057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612ad1945050505050565b610460612bf2565b61050b60048036036040811015610a7c57600080fd5b506001600160a01b0381358116916020013516612ca8565b61046060048036036040811015610aaa57600080fd5b5080359060200135612cd3565b61050b60048036036020811015610acd57600080fd5b5035612f0e565b610460612f1e565b61046060048036036020811015610af257600080fd5b50356001600160a01b0316613170565b61054b61327e565b61046061328d565b61046061330e565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba65780601f10610b7b57610100808354040283529160200191610ba6565b820191906000526020600020905b815481529060010190602001808311610b8957829003601f168201915b505050505090505b90565b6000610bc5610bbe61350b565b848461351a565b5060015b92915050565b610bd761350b565b6001600160a01b0316610be8611c3d565b6001600160a01b031614610c31576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b03163314610c9f576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b600754604051631460b50560e01b81526020600482018181528451602484015284516001600160a01b0390941693631460b5059386938392604490920191818601910280838360005b83811015610d00578181015183820152602001610ce8565b5050505090500192505050600060405180830381600087803b158015610d2557600080fd5b505af1158015610d39573d6000803e3d6000fd5b5050505050565b60025490565b610d4e61350b565b6001600160a01b0316610d5f611c3d565b6001600160a01b031614610da8576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600954600160a01b900460ff16610e06576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207365742070656e64696e67207374726174656779206e6f7700604482015290519081900360640190fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6013546001600160a01b031681565b600d8181548110610e4757600080fd5b600091825260209091200154905081565b6000610e65848484613606565b610ed584610e7161350b565b610ed085604051806060016040528060288152602001614215602891396001600160a01b038a16600090815260016020526040812090610eaf61350b565b6001600160a01b031681526020810191909152604001600020549190613761565b61351a565b5060015b9392505050565b6202a30081565b600a5481565b60055460ff1690565b610efe61350b565b6001600160a01b0316610f0f611c3d565b6001600160a01b031614610f58576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b81816000818110610f6557fe5b9050602002013560001415610fc1576040805162461bcd60e51b815260206004820152601a60248201527f4d696e696d756e20616d6f756e742063616e6e6f742062652030000000000000604482015290519081900360640190fd5b81816000818110610fce57fe5b9050602002013582826001818110610fe257fe5b90506020020135116110255760405162461bcd60e51b815260040180806020018281038252602f815260200180614175602f913960400191505060405180910390fd5b6000600b80548060200260200160405190810160405280929190818152602001828054801561107357602002820191906000526020600020905b81548152602001906001019080831161105f575b505050505090508282600b919061108b929190613f6d565b507f27a98e39e1429b018e9a49265f33c203cb4819c6ce1ab3fcb70815f9d738c15b818484604051808060200180602001838103835286818151815260200191508051906020019060200280838360005b838110156110f45781810151838201526020016110dc565b505050509050018381038252858582818152602001925060200280828437600083820152604051601f909101601f191690920182900397509095505050505050a1505050565b6000610bc561114761350b565b84610ed0856001600061115861350b565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906137f8565b3332146111c7576040805162461bcd60e51b81526020600482015260086024820152674f6e6c7920454f4160c01b604482015290519081900360640190fd5b6000821161120e576040805162461bcd60e51b815260206004820152600f60248201526e0536861726573206d757374203e203608c1b604482015290519081900360640190fd5b600061123361121b610d40565b61122d85611227612708565b90613852565b906138ab565b905061123f3384613912565b6000828152601460209081526040808320815160608101835281546001600160a01b03168082526001830154828601526002909201548184015282516370a0823160e01b8152306004820152925190949391926370a08231926024808301939192829003018186803b1580156112b457600080fd5b505afa1580156112c8573d6000803e3d6000fd5b505050506040513d60208110156112de57600080fd5b5051602083015190915060121415611302576112ff8164e8d4a510006138ab565b90505b8083111561138e5760075460408051630441a3e760e41b8152600481018690526024810187905290516001600160a01b039092169163441a3e70916044808201926020929091908290030181600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b505050506040513d602081101561138957600080fd5b505192505b600061139f8664e8d4a510006138ab565b9050808411156113f65760006113b58583613a0e565b905060006113d461271061122d600f548561385290919063ffffffff16565b90506113e08682613a0e565b6010549096506113f090826137f8565b60105550505b826020015160121415611415576114128464e8d4a51000613852565b93505b825161142b906001600160a01b03163386613a6b565b600085815260146020908152604091829020548251878152918201899052825133936001600160a01b03909216927ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb56792908290030190a3505050505050565b6011546001600160a01b031681565b6009546001600160a01b031681565b6040805180820190915260018152603160f81b602082015290565b6014602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6006546001600160a01b038281169116145b919050565b6008546001600160a01b03163314611551576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b6000838152601460209081526040918290205482516370a0823160e01b8152306004820152925184936001600160a01b03909216926370a082319260248082019391829003018186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d60208110156115d157600080fd5b505111611625576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420616d6f756e7420746f20737761700000000000604482015290519081900360640190fd5b600061163084613abd565b9050600061163d84613abd565b60408051630f7c084960e21b8152600f85810b600483015283900b602482015260448101869052600060648201819052915192935073bebc44782c7db0a1a60cb6fe97d0b483032ff1c792633df021249260848084019391929182900301818387803b1580156116ac57600080fd5b505af11580156116c0573d6000803e3d6000fd5b505050505050505050565b6116d361350b565b6001600160a01b03166116e4611c3d565b6001600160a01b03161461172d576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526020819052604090205490565b61177261350b565b6001600160a01b0316611783611c3d565b6001600160a01b0316146117cc576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6008546001600160a01b03163314611868576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b60075460408051637d6f5ed360e01b815260048101869052602481018590526044810184905290516001600160a01b0390921691637d6f5ed39160648082019260009290919082900301818387803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b50505050505050565b6118e861350b565b6001600160a01b03166118f9611c3d565b6001600160a01b031614611942576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b610bb88282600081811061195257fe5b9050602002013510801561197a5750610bb88282600181811061197157fe5b90506020020135105b801561199a5750610bb88282600281811061199157fe5b90506020020135105b6119d55760405162461bcd60e51b815260040180806020018281038252602e815260200180614121602e913960400191505060405180910390fd5b6000600d805480602002602001604051908101604052809291908181526020018280548015611a2357602002820191906000526020600020905b815481526020019060010190808311611a0f575b505050505090508282600d9190611a3b929190613f6d565b507f3227c0eb87cc3f1cd6f5dbf94481c11a412dc6a3fcbaef0a10671bfe878d46a581848460405180806020018060200183810383528681815181526020019150805190602001906020028083836000838110156110f45781810151838201526020016110dc565b600e5481565b6006546001600160a01b031681565b600954600160a01b900460ff1681565b611ad061350b565b6001600160a01b0316611ae1611c3d565b6001600160a01b031614611b2a576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b611b5461350b565b6001600160a01b0316611b65611c3d565b6001600160a01b031614611bae576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600d600281548110611bbc57fe5b90600052602060002001548110611c045760405162461bcd60e51b815260040180806020018281038252603881526020018061427e6038913960400191505060405180910390fd5b600e805490829055604051829082907f88956a36dde8b18c54b71bdb817c8ac920184c2365db87fb7b44c5aecaf738ad90600090a35050565b60055461010090046001600160a01b031690565b600f5481565b611c5f61350b565b6001600160a01b0316611c70611c3d565b6001600160a01b031614611cb9576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b42600a5411158015611cdb5750600a544290611cd890620151806137f8565b10155b611d1e576040805162461bcd60e51b815260206004820152600f60248201526e119d5b98dd1a5bdb881b1bd8dad959608a1b604482015290519081900360640190fd5b600754604080516370a0823160e01b81526001600160a01b0390921660048301525173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29160009183916370a08231916024808301926020929190829003018186803b158015611d8057600080fd5b505afa158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b5051905080611df8576040805162461bcd60e51b81526020600482015260156024820152744e6f2062616c616e636520746f206d69677261746560581b604482015290519081900360640190fd5b6009546001600160a01b0316611e4a576040805162461bcd60e51b81526020600482015260126024820152714e6f2070656e64696e67537472617465677960701b604482015290519081900360640190fd5b600754600954611e6b916001600160a01b0385811692918116911684613ae5565b60078054600980546001600160a01b031983166001600160a01b0382811691909117948590556001600160a81b0319909116600160a01b179091556000805260146020526000805160206141018339815191525491811692611ed392821691166000196133aa565b6000808052601460205260008051602061410183398151915254611f04916001600160a01b039091169083906133aa565b600754600160005260146020526000805160206140bb83398151915254611f3a916001600160a01b0391821691166000196133aa565b6001600090815260146020526000805160206140bb83398151915254611f6d916001600160a01b039091169083906133aa565b600754600260005260146020526000805160206141a483398151915254611fa3916001600160a01b0391821691166000196133aa565b6002600090815260146020526000805160206141a483398151915254611fd6916001600160a01b039091169083906133aa565b6000600a556007546040805184815290516001600160a01b03928316928416917f77e495c0e82622b2e795fb14f2a956e1dd14664ea8dbc629c12f4859b416aaea919081900360200190a3505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba65780601f10610b7b57610100808354040283529160200191610ba6565b6000610bc561209461350b565b84610ed08560405180606001604052806025815260200161435f60259139600160006120be61350b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190613761565b3330148061210757506008546001600160a01b031633145b612149576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6010541561258457600061215b613fb8565b601054600080526014602090815260008051602061410183398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156121bb57600080fd5b505afa1580156121cf573d6000803e3d6000fd5b505050506040513d60208110156121e557600080fd5b50511115612276575050600080526014602090815260408051606081018252600080516020614101833981519152546001600160a01b031681527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99d54928101929092527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e54908201526001906124ab565b6010546001600052601460209081526000805160206140bb83398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156122d757600080fd5b505afa1580156122eb573d6000803e3d6000fd5b505050506040513d602081101561230157600080fd5b505111156123925750506001600081905260146020908152604080516060810182526000805160206140bb833981519152546001600160a01b031681527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2d54928101929092527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e54908201526124ab565b6010546002600052601460209081526000805160206141a483398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156123f357600080fd5b505afa158015612407573d6000803e3d6000fd5b505050506040513d602081101561241d57600080fd5b505111156124ab575050600260005260146020908152604080516060810182526000805160206141a4833981519152546001600160a01b031681527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7b54928101929092527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c54908201526001905b81156125815760006124ce600561122d600260105461385290919063ffffffff16565b60115483519192506124ed916001600160a01b03908116911683613a6b565b6012548251612509916001600160a01b03918216911683613a6b565b601354601054612545916001600160a01b03169061253390849061252d9082613a0e565b90613a0e565b84516001600160a01b03169190613a6b565b60105460408051918252517fac666b559266a78134e451d448294dee5b26768856cdc24f37cd43c218ec790a9181900360200190a15060006010555b50505b565b61258e61350b565b6001600160a01b031661259f611c3d565b6001600160a01b0316146125e8576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b610bb881106126285760405162461bcd60e51b815260040180806020018281038252603681526020018061403d6036913960400191505060405180910390fd5b600f805490829055604051829082907f4c98cf9b88d370c1f7909301995611f647088f4c05d29cb98073fb4e20dcb14790600090a35050565b61266961350b565b6001600160a01b031661267a611c3d565b6001600160a01b0316146126c3576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b031681565b6000610bc561270161350b565b8484613606565b60105460026000908152601460209081526000805160206141a483398151915254604080516370a0823160e01b81523060048201529051939485946128dc94919361252d936127b89364e8d4a51000936001600160a01b03909316926370a08231926024808201939291829003018186803b15801561278657600080fd5b505afa15801561279a573d6000803e3d6000fd5b505050506040513d60208110156127b057600080fd5b5051906138ab565b6001600052601460209081526000805160206140bb83398151915254604080516370a0823160e01b815230600482015290516128d6936001600160a01b03909316926370a082319260248082019391829003018186803b15801561281b57600080fd5b505afa15801561282f573d6000803e3d6000fd5b505050506040513d602081101561284557600080fd5b5051600080526014602090815260008051602061410183398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156128a457600080fd5b505afa1580156128b8573d6000803e3d6000fd5b505050506040513d60208110156128ce57600080fd5b5051906137f8565b906137f8565b905061293081600760009054906101000a90046001600160a01b03166001600160a01b03166375f4d6776040518163ffffffff1660e01b815260040160206040518083038186803b1580156128a457600080fd5b91505090565b61293e61350b565b6001600160a01b031661294f611c3d565b6001600160a01b031614612998576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600b6001815481106129a657fe5b906000526020600020015481116129ee5760405162461bcd60e51b81526004018080602001828103825260308152602001806141c46030913960400191505060405180910390fd5b600c805490829055604051829082907fef2a4c2ea48c640ebf60d3ed1b6c41747f60e3c5bf7b290e4ad0d156839b643390600090a35050565b6012546001600160a01b031681565b6013546001600160a01b0316331480612a675750612a52611c3d565b6001600160a01b0316336001600160a01b0316145b612aa9576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600c5481565b6008546001600160a01b03163314612b1d576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b80600081518110612b2a57fe5b6020908102919091018101516000805260149091527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e55805181906001908110612b7057fe5b602090810291909101810151600160005260149091527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e55805181906002908110612bb757fe5b602090810291909101810151600260005260149091527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c5550565b6008546001600160a01b03163314612c3e576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b600760009054906101000a90046001600160a01b03166001600160a01b031663db2e21bc6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c8e57600080fd5b505af1158015612ca2573d6000803e3d6000fd5b50505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b33321480612ce55750612ce5336114ee565b612d2d576040805162461bcd60e51b81526020600482015260146024820152734f6e6c7920454f41206f72204269636f6e6f6d7960601b604482015290519081900360640190fd5b60008211612d74576040805162461bcd60e51b815260206004820152600f60248201526e0416d6f756e74206d757374203e203608c1b604482015290519081900360640190fd5b6000612d7e61350b565b600083815260146020526040902054909150612da5906001600160a01b0316823086613ae5565b600082815260146020526040902060010154839060121415612dd357612dd08464e8d4a510006138ab565b93505b6000600b600081548110612de357fe5b9060005260206000200154851015612e1557600d600081548110612e0357fe5b90600052602060002001549050612e5f565b600b600181548110612e2357fe5b90600052602060002001548511612e4257600d600181548110612e0357fe5b600c54851015612e5a57600d600281548110612e0357fe5b50600e545b6000612e7161271061122d8885613852565b601054909150612e8190826137f8565b601055612e8e8682613a0e565b95506000612ea18764e8d4a51000613852565b9050612ead8582613b3f565b60008681526014602090815260409182902054825187815291820184905282516001600160a01b03808a16949216927fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d792908290030190a350505050505050565b600b8181548110610e4757600080fd5b6008546001600160a01b03163314612f6a576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b612f726120ef565b6000612f7c612708565b600754600080526014602090815260408051606081018252600080516020614101833981519152546001600160a01b0390811682527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99d54938201939093527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e549181019190915292935016906379aba36d906130189084613c2f565b600160005260146020908152604080516060810182526000805160206140bb833981519152546001600160a01b031681527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2d54928101929092527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e54908201526130a29085613c2f565b600260005260146020908152604080516060810182526000805160206141a4833981519152546001600160a01b031681527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7b54928101929092527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c549082015261312c9086613c2f565b6040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610d2557600080fd5b61317861350b565b6001600160a01b0316613189611c3d565b6001600160a01b0316146131d2576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b6001600160a01b0381166132175760405162461bcd60e51b81526004018080602001828103825260268152602001806140736026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6008546001600160a01b031681565b61329561350b565b6001600160a01b03166132a6611c3d565b6001600160a01b0316146132ef576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b6132fc426202a3006137f8565b600a556009805460ff60a01b19169055565b6008546001600160a01b0316331461335a576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b600760009054906101000a90046001600160a01b03166001600160a01b031663fdb5a03e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c8e57600080fd5b801580613430575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561340257600080fd5b505afa158015613416573d6000803e3d6000fd5b505050506040513d602081101561342c57600080fd5b5051155b61346b5760405162461bcd60e51b81526004018080602001828103825260368152602001806143296036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526134bd908490613cf5565b505050565b6000601836108015906134d957506134d9336114ee565b156134ed575060131936013560601c610bae565b5033610bae565b60606135038484600085613da6565b949350505050565b60006135156134c2565b905090565b6001600160a01b03831661355f5760405162461bcd60e51b81526004018080602001828103825260248152602001806142db6024913960400191505060405180910390fd5b6001600160a01b0382166135a45760405162461bcd60e51b81526004018080602001828103825260228152602001806140996022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661364b5760405162461bcd60e51b81526004018080602001828103825260258152602001806142b66025913960400191505060405180910390fd5b6001600160a01b0382166136905760405162461bcd60e51b8152600401808060200182810382526023815260200180613ff86023913960400191505060405180910390fd5b61369b8383836134bd565b6136d8816040518060600160405280602681526020016140db602691396001600160a01b0386166000908152602081905260409020549190613761565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461370790826137f8565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156137f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137b557818101518382015260200161379d565b50505050905090810190601f1680156137e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610ed9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261386157506000610bc9565b8282028284828161386e57fe5b0414610ed95760405162461bcd60e51b81526004018080602001828103825260218152602001806141f46021913960400191505060405180910390fd5b6000808211613901576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161390a57fe5b049392505050565b6001600160a01b0382166139575760405162461bcd60e51b815260040180806020018281038252602181526020018061425d6021913960400191505060405180910390fd5b613963826000836134bd565b6139a08160405180606001604052806022815260200161401b602291396001600160a01b0385166000908152602081905260409020549190613761565b6001600160a01b0383166000908152602081905260409020556002546139c69082613a0e565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082821115613a65576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526134bd908490613cf5565b600081613acc57506002611500565b8160011415613add57506001611500565b506000611500565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612ca2908590613cf5565b6001600160a01b038216613b9a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b613ba6600083836134bd565b600254613bb390826137f8565b6002556001600160a01b038216600090815260208190526040902054613bd990826137f8565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008083600001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613c8357600080fd5b505afa158015613c97573d6000803e3d6000fd5b505050506040513d6020811015613cad57600080fd5b50516040850151909150600090613ccd906127109061122d908790613852565b905080821115613cea57613ce18282613a0e565b92505050610bc9565b600092505050610bc9565b6000613d4a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134f49092919063ffffffff16565b8051909150156134bd57808060200190516020811015613d6957600080fd5b50516134bd5760405162461bcd60e51b815260040180806020018281038252602a8152602001806142ff602a913960400191505060405180910390fd5b606082471015613de75760405162461bcd60e51b815260040180806020018281038252602681526020018061414f6026913960400191505060405180910390fd5b613df085613f01565b613e41576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310613e7f5780518252601f199092019160209182019101613e60565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613ee1576040519150601f19603f3d011682016040523d82523d6000602084013e613ee6565b606091505b5091509150613ef6828286613f07565b979650505050505050565b3b151590565b60608315613f16575081610ed9565b825115613f265782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156137b557818101518382015260200161379d565b828054828255906000526020600020908101928215613fa8579160200282015b82811115613fa8578235825591602001919060010190613f8d565b50613fb4929150613fe2565b5090565b604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b5b80821115613fb45760008155600101613fe356fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636550726f66696c652073686172696e67206665652070657263656e746167652063616e6e6f74206265206d6f7265207468616e203330254f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373b6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2c45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99c4e6574776f726b206665652070657263656e746167652063616e6e6f74206265206d6f7265207468616e20333025416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4d6178696d756e20616d6f756e74206d7573742067726561746572207468616e206d696e696d756e20616d6f756e74a1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7a437573746f6d206e6574776f726b206665652074696572206d7573742067726561746572207468616e20746965722032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e2066726f6d20746865207a65726f2061646472657373437573746f6d206e6574776f726b206665652070657263656e746167652063616e6e6f74206265206d6f7265207468616e2074696572203245524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122089849ae810dce0db3d61ad59768868d9d26425d6dbab4d1137c50d7e6f6726f364736f6c63430007060033
0x60c0604052640ba43b7401608090815264174876e80060a0526200002890600b906002620009c5565b5064e8d4a51000600c556040805160608101825260648152604b60208201526032918101919091526200006090600d90600362000a1e565b506019600e556107d0600f553480156200007957600080fd5b5060405162004f4a38038062004f4a833981810160405260c08110156200009f57600080fd5b5080516020808301516040808501516060860151608087015160a09097015183518085018552600e81526d2220a7902b30bab63a1022b637b760911b8188019081528551808701909652600686526564616f454c4f60d01b978601979097528051979895979396929594919390926200011c916003919062000a61565b5080516200013290600490602084019062000a61565b50506005805460ff191660121790555060006200014e6200054a565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600780546001600160a01b03199081166001600160a01b0389811691909117909255601180548216888416179055601280548216878416178155600880548316878516179055601380548316868516179055600680548316858516178155604080516060808201835273dac17f958d2ee523a2206206994597c13d831ec7808352602080840186815260c88587018181526000808052601480865297517f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99c80548e16918f1691909117905592517f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99d55517f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e558651808601885273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48808252818501998a528189018381526001855288865291517fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2c80548e16918f1691909117905598517fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2d55517fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e5586519485018752736b175474e89094c44da98b954eedeac495271d0f808652858401998a52968501908152600290915293815291517fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7a805490981698169790971790955592517fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7b5591517fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c5591620004289084908b906000199062000567811b620033aa17901c565b6200046373bebc44782c7db0a1a60cb6fe97d0b483032ff1c7600019856001600160a01b03166200056760201b620033aa179092919060201c565b6200048a89600019846001600160a01b03166200056760201b620033aa179092919060201c565b620004c573bebc44782c7db0a1a60cb6fe97d0b483032ff1c7600019846001600160a01b03166200056760201b620033aa179092919060201c565b620004ec89600019836001600160a01b03166200056760201b620033aa179092919060201c565b6200052773bebc44782c7db0a1a60cb6fe97d0b483032ff1c7600019836001600160a01b03166200056760201b620033aa179092919060201c565b50506009805460ff60a01b1916600160a01b1790555062000afb95505050505050565b6000620005616200068b60201b620034c21760201c565b90505b90565b801580620005f1575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015620005c157600080fd5b505afa158015620005d6573d6000803e3d6000fd5b505050506040513d6020811015620005ed57600080fd5b5051155b6200062e5760405162461bcd60e51b815260040180806020018281038252603681526020018062004f146036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b1790915262000686918591620006c316565b505050565b600060183610801590620006a55750620006a5336200077f565b15620006bb575060131936013560601c62000564565b503362000564565b60006200071f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200079360201b620034f4179092919060201c565b80519091501562000686578080602001905160208110156200074057600080fd5b5051620006865760405162461bcd60e51b815260040180806020018281038252602a81526020018062004eea602a913960400191505060405180910390fd5b6006546001600160a01b0390811691161490565b6060620007a48484600085620007ae565b90505b9392505050565b606082471015620007f15760405162461bcd60e51b815260040180806020018281038252602681526020018062004ec46026913960400191505060405180910390fd5b620007fc8562000915565b6200084e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106200088e5780518252601f1990920191602091820191016200086d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114620008f2576040519150601f19603f3d011682016040523d82523d6000602084013e620008f7565b606091505b5090925090506200090a8282866200091b565b979650505050505050565b3b151590565b606083156200092c575081620007a7565b8251156200093d5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620009895781810151838201526020016200096f565b50505050905090810190601f168015620009b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b82805482825590600052602060002090810192821562000a0c579160200282015b8281111562000a0c578251829064ffffffffff16905591602001919060010190620009e6565b5062000a1a92915062000ae4565b5090565b82805482825590600052602060002090810192821562000a0c579160200282015b8281111562000a0c578251829060ff1690559160200191906001019062000a3f565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000a99576000855562000a0c565b82601f1062000ab457805160ff191683800117855562000a0c565b8280016001018555821562000a0c579182015b8281111562000a0c57825182559160200191906001019062000ac7565b5b8082111562000a1a576000815560010162000ae5565b6143b98062000b0b6000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c8063854ab6df116101d3578063c17b107111610104578063e2bbb158116100a2578063f2fde38b1161007c578063f2fde38b14610adc578063f851a44014610b02578063f99bab2414610b0a578063fdb5a03e14610b1257610378565b8063e2bbb15814610a94578063e5ec14d414610ab7578063e8b5e51f14610ad457610378565b8063ce25aa79116100de578063ce25aa79146109b5578063d0427eb7146109bd578063db2e21bc14610a5e578063dd62ed3e14610a6657610378565b8063c17b10711461096a578063c757483914610987578063c7b9d5301461098f57610378565b8063a457c2d711610171578063a8602fea1161014b578063a8602fea14610908578063a8c62e761461092e578063a9059cbb14610936578063bd244af41461096257610378565b8063a457c2d7146108b7578063a58f22b1146108e3578063a6478c1f146108eb57610378565b80638da5cb5b116101ad5780638da5cb5b146108975780639367b30e1461089f5780639580c4bc146108a757806395d89b41146108af57610378565b8063854ab6df1461084c57806385d6bb81146108545780638ce418f91461087a57610378565b8063441a3e70116102ad578063704b6c021161024b578063733199751161022557806373319975146107a5578063737ea0ad146107ce57806378fe08d51461083c5780637da0a8771461084457610378565b8063704b6c021461075157806370a0823114610777578063715018a61461079d57610378565b8063486ff0cd11610287578063486ff0cd146106b55780634f64b2be146106bd578063572b6c051461070257806358acff8f1461072857610378565b8063441a3e70146106825780634626402b146106a5578063465fc5d2146106ad57610378565b8063238b15981161031a578063251c1aa3116102f4578063251c1aa3146105c2578063313ce567146105ca57806334100fc4146105e8578063395093511461065657610378565b8063238b15981461056757806323b872dd14610584578063242c8e69146105ba57610378565b80631460b505116103565780631460b5051461046257806318160ddd146105035780631a8f0c0a1461051d5780631fe4a6861461054357610378565b806306fdde031461037d578063095ea7b3146103fa5780630d8b76a81461043a575b600080fd5b610385610b1a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103bf5781810151838201526020016103a7565b50505050905090810190601f1680156103ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104266004803603604081101561041057600080fd5b506001600160a01b038135169060200135610bb1565b604080519115158252519081900360200190f35b6104606004803603602081101561045057600080fd5b50356001600160a01b0316610bcf565b005b6104606004803603602081101561047857600080fd5b810190602081018135600160201b81111561049257600080fd5b8201836020820111156104a457600080fd5b803590602001918460208302840111600160201b831117156104c557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c53945050505050565b61050b610d40565b60408051918252519081900360200190f35b6104606004803603602081101561053357600080fd5b50356001600160a01b0316610d46565b61054b610e28565b604080516001600160a01b039092168252519081900360200190f35b61050b6004803603602081101561057d57600080fd5b5035610e37565b6104266004803603606081101561059a57600080fd5b506001600160a01b03813581169160208101359091169060400135610e58565b61050b610ee0565b61050b610ee7565b6105d2610eed565b6040805160ff9092168252519081900360200190f35b610460600480360360208110156105fe57600080fd5b810190602081018135600160201b81111561061857600080fd5b82018360208201111561062a57600080fd5b803590602001918460208302840111600160201b8311171561064b57600080fd5b509092509050610ef6565b6104266004803603604081101561066c57600080fd5b506001600160a01b03813516906020013561113a565b6104606004803603604081101561069857600080fd5b5080359060200135611188565b61054b61148a565b61054b611499565b6103856114a8565b6106da600480360360208110156106d357600080fd5b50356114c3565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6104266004803603602081101561071857600080fd5b50356001600160a01b03166114ee565b6104606004803603606081101561073e57600080fd5b5080359060208101359060400135611505565b6104606004803603602081101561076757600080fd5b50356001600160a01b03166116cb565b61050b6004803603602081101561078d57600080fd5b50356001600160a01b031661174f565b61046061176a565b610460600480360360608110156107bb57600080fd5b508035906020810135906040013561181c565b610460600480360360208110156107e457600080fd5b810190602081018135600160201b8111156107fe57600080fd5b82018360208201111561081057600080fd5b803590602001918460208302840111600160201b8311171561083157600080fd5b5090925090506118e0565b61050b611aa3565b61054b611aa9565b610426611ab8565b6104606004803603602081101561086a57600080fd5b50356001600160a01b0316611ac8565b6104606004803603602081101561089057600080fd5b5035611b4c565b61054b611c3d565b61050b611c51565b610460611c57565b610385612026565b610426600480360360408110156108cd57600080fd5b506001600160a01b038135169060200135612087565b6104606120ef565b6104606004803603602081101561090157600080fd5b5035612586565b6104606004803603602081101561091e57600080fd5b50356001600160a01b0316612661565b61054b6126e5565b6104266004803603604081101561094c57600080fd5b506001600160a01b0381351690602001356126f4565b61050b612708565b6104606004803603602081101561098057600080fd5b5035612936565b61054b612a27565b610460600480360360208110156109a557600080fd5b50356001600160a01b0316612a36565b61050b612acb565b610460600480360360208110156109d357600080fd5b810190602081018135600160201b8111156109ed57600080fd5b8201836020820111156109ff57600080fd5b803590602001918460208302840111600160201b83111715610a2057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612ad1945050505050565b610460612bf2565b61050b60048036036040811015610a7c57600080fd5b506001600160a01b0381358116916020013516612ca8565b61046060048036036040811015610aaa57600080fd5b5080359060200135612cd3565b61050b60048036036020811015610acd57600080fd5b5035612f0e565b610460612f1e565b61046060048036036020811015610af257600080fd5b50356001600160a01b0316613170565b61054b61327e565b61046061328d565b61046061330e565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba65780601f10610b7b57610100808354040283529160200191610ba6565b820191906000526020600020905b815481529060010190602001808311610b8957829003601f168201915b505050505090505b90565b6000610bc5610bbe61350b565b848461351a565b5060015b92915050565b610bd761350b565b6001600160a01b0316610be8611c3d565b6001600160a01b031614610c31576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b03163314610c9f576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b600754604051631460b50560e01b81526020600482018181528451602484015284516001600160a01b0390941693631460b5059386938392604490920191818601910280838360005b83811015610d00578181015183820152602001610ce8565b5050505090500192505050600060405180830381600087803b158015610d2557600080fd5b505af1158015610d39573d6000803e3d6000fd5b5050505050565b60025490565b610d4e61350b565b6001600160a01b0316610d5f611c3d565b6001600160a01b031614610da8576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600954600160a01b900460ff16610e06576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207365742070656e64696e67207374726174656779206e6f7700604482015290519081900360640190fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6013546001600160a01b031681565b600d8181548110610e4757600080fd5b600091825260209091200154905081565b6000610e65848484613606565b610ed584610e7161350b565b610ed085604051806060016040528060288152602001614215602891396001600160a01b038a16600090815260016020526040812090610eaf61350b565b6001600160a01b031681526020810191909152604001600020549190613761565b61351a565b5060015b9392505050565b6202a30081565b600a5481565b60055460ff1690565b610efe61350b565b6001600160a01b0316610f0f611c3d565b6001600160a01b031614610f58576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b81816000818110610f6557fe5b9050602002013560001415610fc1576040805162461bcd60e51b815260206004820152601a60248201527f4d696e696d756e20616d6f756e742063616e6e6f742062652030000000000000604482015290519081900360640190fd5b81816000818110610fce57fe5b9050602002013582826001818110610fe257fe5b90506020020135116110255760405162461bcd60e51b815260040180806020018281038252602f815260200180614175602f913960400191505060405180910390fd5b6000600b80548060200260200160405190810160405280929190818152602001828054801561107357602002820191906000526020600020905b81548152602001906001019080831161105f575b505050505090508282600b919061108b929190613f6d565b507f27a98e39e1429b018e9a49265f33c203cb4819c6ce1ab3fcb70815f9d738c15b818484604051808060200180602001838103835286818151815260200191508051906020019060200280838360005b838110156110f45781810151838201526020016110dc565b505050509050018381038252858582818152602001925060200280828437600083820152604051601f909101601f191690920182900397509095505050505050a1505050565b6000610bc561114761350b565b84610ed0856001600061115861350b565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906137f8565b3332146111c7576040805162461bcd60e51b81526020600482015260086024820152674f6e6c7920454f4160c01b604482015290519081900360640190fd5b6000821161120e576040805162461bcd60e51b815260206004820152600f60248201526e0536861726573206d757374203e203608c1b604482015290519081900360640190fd5b600061123361121b610d40565b61122d85611227612708565b90613852565b906138ab565b905061123f3384613912565b6000828152601460209081526040808320815160608101835281546001600160a01b03168082526001830154828601526002909201548184015282516370a0823160e01b8152306004820152925190949391926370a08231926024808301939192829003018186803b1580156112b457600080fd5b505afa1580156112c8573d6000803e3d6000fd5b505050506040513d60208110156112de57600080fd5b5051602083015190915060121415611302576112ff8164e8d4a510006138ab565b90505b8083111561138e5760075460408051630441a3e760e41b8152600481018690526024810187905290516001600160a01b039092169163441a3e70916044808201926020929091908290030181600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b505050506040513d602081101561138957600080fd5b505192505b600061139f8664e8d4a510006138ab565b9050808411156113f65760006113b58583613a0e565b905060006113d461271061122d600f548561385290919063ffffffff16565b90506113e08682613a0e565b6010549096506113f090826137f8565b60105550505b826020015160121415611415576114128464e8d4a51000613852565b93505b825161142b906001600160a01b03163386613a6b565b600085815260146020908152604091829020548251878152918201899052825133936001600160a01b03909216927ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb56792908290030190a3505050505050565b6011546001600160a01b031681565b6009546001600160a01b031681565b6040805180820190915260018152603160f81b602082015290565b6014602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b6006546001600160a01b038281169116145b919050565b6008546001600160a01b03163314611551576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b6000838152601460209081526040918290205482516370a0823160e01b8152306004820152925184936001600160a01b03909216926370a082319260248082019391829003018186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d60208110156115d157600080fd5b505111611625576040805162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420616d6f756e7420746f20737761700000000000604482015290519081900360640190fd5b600061163084613abd565b9050600061163d84613abd565b60408051630f7c084960e21b8152600f85810b600483015283900b602482015260448101869052600060648201819052915192935073bebc44782c7db0a1a60cb6fe97d0b483032ff1c792633df021249260848084019391929182900301818387803b1580156116ac57600080fd5b505af11580156116c0573d6000803e3d6000fd5b505050505050505050565b6116d361350b565b6001600160a01b03166116e4611c3d565b6001600160a01b03161461172d576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526020819052604090205490565b61177261350b565b6001600160a01b0316611783611c3d565b6001600160a01b0316146117cc576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b6008546001600160a01b03163314611868576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b60075460408051637d6f5ed360e01b815260048101869052602481018590526044810184905290516001600160a01b0390921691637d6f5ed39160648082019260009290919082900301818387803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b50505050505050565b6118e861350b565b6001600160a01b03166118f9611c3d565b6001600160a01b031614611942576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b610bb88282600081811061195257fe5b9050602002013510801561197a5750610bb88282600181811061197157fe5b90506020020135105b801561199a5750610bb88282600281811061199157fe5b90506020020135105b6119d55760405162461bcd60e51b815260040180806020018281038252602e815260200180614121602e913960400191505060405180910390fd5b6000600d805480602002602001604051908101604052809291908181526020018280548015611a2357602002820191906000526020600020905b815481526020019060010190808311611a0f575b505050505090508282600d9190611a3b929190613f6d565b507f3227c0eb87cc3f1cd6f5dbf94481c11a412dc6a3fcbaef0a10671bfe878d46a581848460405180806020018060200183810383528681815181526020019150805190602001906020028083836000838110156110f45781810151838201526020016110dc565b600e5481565b6006546001600160a01b031681565b600954600160a01b900460ff1681565b611ad061350b565b6001600160a01b0316611ae1611c3d565b6001600160a01b031614611b2a576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b611b5461350b565b6001600160a01b0316611b65611c3d565b6001600160a01b031614611bae576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600d600281548110611bbc57fe5b90600052602060002001548110611c045760405162461bcd60e51b815260040180806020018281038252603881526020018061427e6038913960400191505060405180910390fd5b600e805490829055604051829082907f88956a36dde8b18c54b71bdb817c8ac920184c2365db87fb7b44c5aecaf738ad90600090a35050565b60055461010090046001600160a01b031690565b600f5481565b611c5f61350b565b6001600160a01b0316611c70611c3d565b6001600160a01b031614611cb9576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b42600a5411158015611cdb5750600a544290611cd890620151806137f8565b10155b611d1e576040805162461bcd60e51b815260206004820152600f60248201526e119d5b98dd1a5bdb881b1bd8dad959608a1b604482015290519081900360640190fd5b600754604080516370a0823160e01b81526001600160a01b0390921660048301525173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29160009183916370a08231916024808301926020929190829003018186803b158015611d8057600080fd5b505afa158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b5051905080611df8576040805162461bcd60e51b81526020600482015260156024820152744e6f2062616c616e636520746f206d69677261746560581b604482015290519081900360640190fd5b6009546001600160a01b0316611e4a576040805162461bcd60e51b81526020600482015260126024820152714e6f2070656e64696e67537472617465677960701b604482015290519081900360640190fd5b600754600954611e6b916001600160a01b0385811692918116911684613ae5565b60078054600980546001600160a01b031983166001600160a01b0382811691909117948590556001600160a81b0319909116600160a01b179091556000805260146020526000805160206141018339815191525491811692611ed392821691166000196133aa565b6000808052601460205260008051602061410183398151915254611f04916001600160a01b039091169083906133aa565b600754600160005260146020526000805160206140bb83398151915254611f3a916001600160a01b0391821691166000196133aa565b6001600090815260146020526000805160206140bb83398151915254611f6d916001600160a01b039091169083906133aa565b600754600260005260146020526000805160206141a483398151915254611fa3916001600160a01b0391821691166000196133aa565b6002600090815260146020526000805160206141a483398151915254611fd6916001600160a01b039091169083906133aa565b6000600a556007546040805184815290516001600160a01b03928316928416917f77e495c0e82622b2e795fb14f2a956e1dd14664ea8dbc629c12f4859b416aaea919081900360200190a3505050565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ba65780601f10610b7b57610100808354040283529160200191610ba6565b6000610bc561209461350b565b84610ed08560405180606001604052806025815260200161435f60259139600160006120be61350b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190613761565b3330148061210757506008546001600160a01b031633145b612149576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6010541561258457600061215b613fb8565b601054600080526014602090815260008051602061410183398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156121bb57600080fd5b505afa1580156121cf573d6000803e3d6000fd5b505050506040513d60208110156121e557600080fd5b50511115612276575050600080526014602090815260408051606081018252600080516020614101833981519152546001600160a01b031681527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99d54928101929092527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e54908201526001906124ab565b6010546001600052601460209081526000805160206140bb83398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156122d757600080fd5b505afa1580156122eb573d6000803e3d6000fd5b505050506040513d602081101561230157600080fd5b505111156123925750506001600081905260146020908152604080516060810182526000805160206140bb833981519152546001600160a01b031681527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2d54928101929092527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e54908201526124ab565b6010546002600052601460209081526000805160206141a483398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156123f357600080fd5b505afa158015612407573d6000803e3d6000fd5b505050506040513d602081101561241d57600080fd5b505111156124ab575050600260005260146020908152604080516060810182526000805160206141a4833981519152546001600160a01b031681527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7b54928101929092527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c54908201526001905b81156125815760006124ce600561122d600260105461385290919063ffffffff16565b60115483519192506124ed916001600160a01b03908116911683613a6b565b6012548251612509916001600160a01b03918216911683613a6b565b601354601054612545916001600160a01b03169061253390849061252d9082613a0e565b90613a0e565b84516001600160a01b03169190613a6b565b60105460408051918252517fac666b559266a78134e451d448294dee5b26768856cdc24f37cd43c218ec790a9181900360200190a15060006010555b50505b565b61258e61350b565b6001600160a01b031661259f611c3d565b6001600160a01b0316146125e8576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b610bb881106126285760405162461bcd60e51b815260040180806020018281038252603681526020018061403d6036913960400191505060405180910390fd5b600f805490829055604051829082907f4c98cf9b88d370c1f7909301995611f647088f4c05d29cb98073fb4e20dcb14790600090a35050565b61266961350b565b6001600160a01b031661267a611c3d565b6001600160a01b0316146126c3576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b031681565b6000610bc561270161350b565b8484613606565b60105460026000908152601460209081526000805160206141a483398151915254604080516370a0823160e01b81523060048201529051939485946128dc94919361252d936127b89364e8d4a51000936001600160a01b03909316926370a08231926024808201939291829003018186803b15801561278657600080fd5b505afa15801561279a573d6000803e3d6000fd5b505050506040513d60208110156127b057600080fd5b5051906138ab565b6001600052601460209081526000805160206140bb83398151915254604080516370a0823160e01b815230600482015290516128d6936001600160a01b03909316926370a082319260248082019391829003018186803b15801561281b57600080fd5b505afa15801561282f573d6000803e3d6000fd5b505050506040513d602081101561284557600080fd5b5051600080526014602090815260008051602061410183398151915254604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b1580156128a457600080fd5b505afa1580156128b8573d6000803e3d6000fd5b505050506040513d60208110156128ce57600080fd5b5051906137f8565b906137f8565b905061293081600760009054906101000a90046001600160a01b03166001600160a01b03166375f4d6776040518163ffffffff1660e01b815260040160206040518083038186803b1580156128a457600080fd5b91505090565b61293e61350b565b6001600160a01b031661294f611c3d565b6001600160a01b031614612998576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b600b6001815481106129a657fe5b906000526020600020015481116129ee5760405162461bcd60e51b81526004018080602001828103825260308152602001806141c46030913960400191505060405180910390fd5b600c805490829055604051829082907fef2a4c2ea48c640ebf60d3ed1b6c41747f60e3c5bf7b290e4ad0d156839b643390600090a35050565b6012546001600160a01b031681565b6013546001600160a01b0316331480612a675750612a52611c3d565b6001600160a01b0316336001600160a01b0316145b612aa9576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600c5481565b6008546001600160a01b03163314612b1d576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b80600081518110612b2a57fe5b6020908102919091018101516000805260149091527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e55805181906001908110612b7057fe5b602090810291909101810151600160005260149091527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e55805181906002908110612bb757fe5b602090810291909101810151600260005260149091527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c5550565b6008546001600160a01b03163314612c3e576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b600760009054906101000a90046001600160a01b03166001600160a01b031663db2e21bc6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c8e57600080fd5b505af1158015612ca2573d6000803e3d6000fd5b50505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b33321480612ce55750612ce5336114ee565b612d2d576040805162461bcd60e51b81526020600482015260146024820152734f6e6c7920454f41206f72204269636f6e6f6d7960601b604482015290519081900360640190fd5b60008211612d74576040805162461bcd60e51b815260206004820152600f60248201526e0416d6f756e74206d757374203e203608c1b604482015290519081900360640190fd5b6000612d7e61350b565b600083815260146020526040902054909150612da5906001600160a01b0316823086613ae5565b600082815260146020526040902060010154839060121415612dd357612dd08464e8d4a510006138ab565b93505b6000600b600081548110612de357fe5b9060005260206000200154851015612e1557600d600081548110612e0357fe5b90600052602060002001549050612e5f565b600b600181548110612e2357fe5b90600052602060002001548511612e4257600d600181548110612e0357fe5b600c54851015612e5a57600d600281548110612e0357fe5b50600e545b6000612e7161271061122d8885613852565b601054909150612e8190826137f8565b601055612e8e8682613a0e565b95506000612ea18764e8d4a51000613852565b9050612ead8582613b3f565b60008681526014602090815260409182902054825187815291820184905282516001600160a01b03808a16949216927fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d792908290030190a350505050505050565b600b8181548110610e4757600080fd5b6008546001600160a01b03163314612f6a576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b612f726120ef565b6000612f7c612708565b600754600080526014602090815260408051606081018252600080516020614101833981519152546001600160a01b0390811682527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99d54938201939093527f4f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99e549181019190915292935016906379aba36d906130189084613c2f565b600160005260146020908152604080516060810182526000805160206140bb833981519152546001600160a01b031681527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2d54928101929092527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2e54908201526130a29085613c2f565b600260005260146020908152604080516060810182526000805160206141a4833981519152546001600160a01b031681527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7b54928101929092527fa1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7c549082015261312c9086613c2f565b6040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610d2557600080fd5b61317861350b565b6001600160a01b0316613189611c3d565b6001600160a01b0316146131d2576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b6001600160a01b0381166132175760405162461bcd60e51b81526004018080602001828103825260268152602001806140736026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6008546001600160a01b031681565b61329561350b565b6001600160a01b03166132a6611c3d565b6001600160a01b0316146132ef576040805162461bcd60e51b8152602060048201819052602482015260008051602061423d833981519152604482015290519081900360640190fd5b6132fc426202a3006137f8565b600a556009805460ff60a01b19169055565b6008546001600160a01b0316331461335a576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9030b236b4b760b11b604482015290519081900360640190fd5b600760009054906101000a90046001600160a01b03166001600160a01b031663fdb5a03e6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c8e57600080fd5b801580613430575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b15801561340257600080fd5b505afa158015613416573d6000803e3d6000fd5b505050506040513d602081101561342c57600080fd5b5051155b61346b5760405162461bcd60e51b81526004018080602001828103825260368152602001806143296036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526134bd908490613cf5565b505050565b6000601836108015906134d957506134d9336114ee565b156134ed575060131936013560601c610bae565b5033610bae565b60606135038484600085613da6565b949350505050565b60006135156134c2565b905090565b6001600160a01b03831661355f5760405162461bcd60e51b81526004018080602001828103825260248152602001806142db6024913960400191505060405180910390fd5b6001600160a01b0382166135a45760405162461bcd60e51b81526004018080602001828103825260228152602001806140996022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661364b5760405162461bcd60e51b81526004018080602001828103825260258152602001806142b66025913960400191505060405180910390fd5b6001600160a01b0382166136905760405162461bcd60e51b8152600401808060200182810382526023815260200180613ff86023913960400191505060405180910390fd5b61369b8383836134bd565b6136d8816040518060600160405280602681526020016140db602691396001600160a01b0386166000908152602081905260409020549190613761565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461370790826137f8565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156137f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137b557818101518382015260200161379d565b50505050905090810190601f1680156137e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610ed9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261386157506000610bc9565b8282028284828161386e57fe5b0414610ed95760405162461bcd60e51b81526004018080602001828103825260218152602001806141f46021913960400191505060405180910390fd5b6000808211613901576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161390a57fe5b049392505050565b6001600160a01b0382166139575760405162461bcd60e51b815260040180806020018281038252602181526020018061425d6021913960400191505060405180910390fd5b613963826000836134bd565b6139a08160405180606001604052806022815260200161401b602291396001600160a01b0385166000908152602081905260409020549190613761565b6001600160a01b0383166000908152602081905260409020556002546139c69082613a0e565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082821115613a65576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526134bd908490613cf5565b600081613acc57506002611500565b8160011415613add57506001611500565b506000611500565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612ca2908590613cf5565b6001600160a01b038216613b9a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b613ba6600083836134bd565b600254613bb390826137f8565b6002556001600160a01b038216600090815260208190526040902054613bd990826137f8565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008083600001516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015613c8357600080fd5b505afa158015613c97573d6000803e3d6000fd5b505050506040513d6020811015613cad57600080fd5b50516040850151909150600090613ccd906127109061122d908790613852565b905080821115613cea57613ce18282613a0e565b92505050610bc9565b600092505050610bc9565b6000613d4a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166134f49092919063ffffffff16565b8051909150156134bd57808060200190516020811015613d6957600080fd5b50516134bd5760405162461bcd60e51b815260040180806020018281038252602a8152602001806142ff602a913960400191505060405180910390fd5b606082471015613de75760405162461bcd60e51b815260040180806020018281038252602681526020018061414f6026913960400191505060405180910390fd5b613df085613f01565b613e41576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310613e7f5780518252601f199092019160209182019101613e60565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613ee1576040519150601f19603f3d011682016040523d82523d6000602084013e613ee6565b606091505b5091509150613ef6828286613f07565b979650505050505050565b3b151590565b60608315613f16575081610ed9565b825115613f265782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156137b557818101518382015260200161379d565b828054828255906000526020600020908101928215613fa8579160200282015b82811115613fa8578235825591602001919060010190613f8d565b50613fb4929150613fe2565b5090565b604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b5b80821115613fb45760008155600101613fe356fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636550726f66696c652073686172696e67206665652070657263656e746167652063616e6e6f74206265206d6f7265207468616e203330254f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373b6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2c45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654f26c3876aa9f4b92579780beea1161a61f87ebf1ec6ee865b299e447ecba99c4e6574776f726b206665652070657263656e746167652063616e6e6f74206265206d6f7265207468616e20333025416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4d6178696d756e20616d6f756e74206d7573742067726561746572207468616e206d696e696d756e20616d6f756e74a1930aa930426c54c34daad2b9ada7c5d0ef0c96078a3c5bb79f6fa6602c4a7a437573746f6d206e6574776f726b206665652074696572206d7573742067726561746572207468616e20746965722032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e2066726f6d20746865207a65726f2061646472657373437573746f6d206e6574776f726b206665652070657263656e746167652063616e6e6f74206265206d6f7265207468616e2074696572203245524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122089849ae810dce0db3d61ad59768868d9d26425d6dbab4d1137c50d7e6f6726f364736f6c63430007060033416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000024d281dcc7d435500669459eaa393dc5200595b100000000000000000000000059e83877bd248cbfe392dbb5a8a29959bcb48592000000000000000000000000dd6c35aff646b2fb7d8a8955ccbe0994409348d00000000000000000000000003f68a3c1023d736d8be867ca49cb18c543373b9900000000000000000000000054d003d451c973ad7693f825d5b78adfc0efe93400000000000000000000000084a0856b038eaad1cc7e297cf34a7e72685a8693