60806040526d314dc6448d9338c15b0a00000000600b8190556d20d190a98096d294893fffffffff19600c556200006090612710906200004c908262000523602090811b620029d917901c565b6200057660201b62002a1b1790919060201c565b600e55620000886127106200004c612710600b546200052360201b620029d91790919060201c565b600f5560408051808201909152600a808252692130b13cb637b734b0b760b11b6020909201918252620000be916010916200068f565b50604080518082019091526007808252662130b13cb637b760c91b6020909201918252620000ef916011916200068f565b506012805460ff19908116821790915560056013819055601481905560036015556000601681905560175560026018556019819055601a55601f80546001600160a01b03191661dead1790556024805460ff60c81b1962ffffff60b01b1960ff60a81b19909216600160a81b1791909116600160c01b1716600160c81b1790556a52b7d2dcc80cd2e40000006025556b204fce5e3e25026110000000602655602880549091166001179055348015620001a757600080fd5b506000620001bd6001600160e01b03620005d416565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026157600080fd5b505afa15801562000276573d6000803e3d6000fd5b505050506040513d60208110156200028d57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015620002de57600080fd5b505afa158015620002f3573d6000803e3d6000fd5b505050506040513d60208110156200030a57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200035d57600080fd5b505af115801562000372573d6000803e3d6000fd5b505050506040513d60208110156200038957600080fd5b5051602480546001600160a01b03199081166001600160a01b039384161790915560238054909116918316919091179055600160056000620003ca620005d9565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260059092529020805490911660011790556200041d6001600160e01b03620005d416565b602080546001600160a01b0319166001600160a01b039290921691909117905562000447620005d4565b602180546001600160a01b0319166001600160a01b039290921691909117905562000471620005d4565b602280546001600160a01b0319166001600160a01b0392909216919091179055600c5460026000620004a2620005d4565b6001600160a01b03168152602081019190915260400160002055620004cf6001600160e01b03620005d416565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040518082815260200191505060405180910390a35062000731565b60006200056d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620005e860201b60201c565b90505b92915050565b600082620005875750600062000570565b828202828482816200059557fe5b04146200056d5760405162461bcd60e51b8152600401808060200182810382526021815260200180620043636021913960400191505060405180910390fd5b335b90565b6000546001600160a01b031690565b60008183620006785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200063c57818101518382015260200162000622565b50505050905090810190601f1680156200066a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200068557fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006d257805160ff191683800117855562000702565b8280016001018555821562000702579182015b8281111562000702578251825591602001919060010190620006e5565b506200071092915062000714565b5090565b620005d691905b808211156200071057600081556001016200071b565b613c2280620007416000396000f3fe6080604052600436106103a65760003560e01c8063715018a6116101e7578063aa45026b1161010d578063da78876f116100a0578063ec44acf21161006f578063ec44acf214610ccf578063ecca3b1614610ce4578063f2fde38b14610d17578063f8b45b0514610d4a576103ad565b8063da78876f14610c19578063dd62ed3e14610c4c578063e3be91cc14610c87578063ea2f0b3714610c9c576103ad565b8063c3c8cd80116100dc578063c3c8cd8014610bae578063c49b9a8014610bc3578063c876d0b914610bef578063d240360a14610c04576103ad565b8063aa45026b14610b43578063b3d5eee114610b58578063c0b0fda214610b6d578063c2e5ec0414610b82576103ad565b80638da5cb5b116101855780639e035846116101545780639e03584614610aa7578063a457c2d714610abc578063a55cac9814610af5578063a9059cbb14610b0a576103ad565b80638da5cb5b14610a3c5780638ea5220f14610a5157806395d89b4114610a6657806396a8826c14610a7b576103ad565b806377c325d6116101c157806377c325d61461099e57806385141a77146109ca57806388f82020146109df57806389e7b81b14610a12576103ad565b8063715018a61461094a578063757765f81461095f57806375f0a87414610989576103ad565b80633b124fe7116102cc5780635342acb41161026a5780636659889d116102395780636659889d146108ba5780636bc87c3a146108ed5780636fc3eaec1461090257806370a0823114610917576103ad565b80635342acb4146107e757806358908a0f1461081a5780635d0044ca1461085d5780635d098b3814610887576103ad565b806349bd5a5e116102a657806349bd5a5e146107605780634a74bb021461077557806350bea5481461078a57806352390c02146107b4576103ad565b80633b124fe7146106ec57806341aea9de14610701578063437823ec1461072d576103ad565b806322976e0d1161034457806331c402ac1161031357806331c402ac146106295780633582ad231461066b5780633685d4191461068057806339509351146106b3576103ad565b806322976e0d1461057357806323b872dd14610588578063313ce567146105cb578063316b5303146105f6576103ad565b80631694505e116103805780631694505e146104b557806318160ddd146104e6578063199586f41461050d5780631f53ac0214610540576103ad565b806306fdde03146103b2578063095ea7b31461043c57806313096a1a14610489576103ad565b366103ad57005b600080fd5b3480156103be57600080fd5b506103c7610d5f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104015781810151838201526020016103e9565b50505050905090810190601f16801561042e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044857600080fd5b506104756004803603604081101561045f57600080fd5b506001600160a01b038135169060200135610df5565b604080519115158252519081900360200190f35b34801561049557600080fd5b506104b3600480360360208110156104ac57600080fd5b5035610e13565b005b3480156104c157600080fd5b506104ca610e70565b604080516001600160a01b039092168252519081900360200190f35b3480156104f257600080fd5b506104fb610e7f565b60408051918252519081900360200190f35b34801561051957600080fd5b506104b36004803603602081101561053057600080fd5b50356001600160a01b0316610e85565b34801561054c57600080fd5b506104b36004803603602081101561056357600080fd5b50356001600160a01b0316610f13565b34801561057f57600080fd5b506104fb610f8d565b34801561059457600080fd5b50610475600480360360608110156105ab57600080fd5b506001600160a01b03813581169160208101359091169060400135610f93565b3480156105d757600080fd5b506105e0611020565b6040805160ff9092168252519081900360200190f35b34801561060257600080fd5b506104b36004803603602081101561061957600080fd5b50356001600160a01b0316611029565b34801561063557600080fd5b506104b3600480360360a081101561064c57600080fd5b50803590602081013590604081013590606081013590608001356110bd565b34801561067757600080fd5b50610475611181565b34801561068c57600080fd5b506104b3600480360360208110156106a357600080fd5b50356001600160a01b0316611191565b3480156106bf57600080fd5b50610475600480360360408110156106d657600080fd5b506001600160a01b038135169060200135611352565b3480156106f857600080fd5b506104fb6113a6565b34801561070d57600080fd5b506104b36004803603602081101561072457600080fd5b503515156113ac565b34801561073957600080fd5b506104b36004803603602081101561075057600080fd5b50356001600160a01b0316611422565b34801561076c57600080fd5b506104ca61149e565b34801561078157600080fd5b506104756114ad565b34801561079657600080fd5b506104b3600480360360208110156107ad57600080fd5b50356114bd565b3480156107c057600080fd5b506104b3600480360360208110156107d757600080fd5b50356001600160a01b031661151a565b3480156107f357600080fd5b506104756004803603602081101561080a57600080fd5b50356001600160a01b03166116a0565b34801561082657600080fd5b506104b36004803603606081101561083d57600080fd5b506001600160a01b038135811691602081013590911690604001356116c2565b34801561086957600080fd5b506104b36004803603602081101561088057600080fd5b5035611774565b34801561089357600080fd5b506104b3600480360360208110156108aa57600080fd5b50356001600160a01b0316611807565b3480156108c657600080fd5b506104b3600480360360208110156108dd57600080fd5b50356001600160a01b0316611881565b3480156108f957600080fd5b506104fb6118fb565b34801561090e57600080fd5b506104b3611901565b34801561092357600080fd5b506104fb6004803603602081101561093a57600080fd5b50356001600160a01b0316611a55565b34801561095657600080fd5b506104b3611ab7565b34801561096b57600080fd5b506104b36004803603602081101561098257600080fd5b5035611b59565b34801561099557600080fd5b506104ca611bd2565b3480156109aa57600080fd5b506104b3600480360360208110156109c157600080fd5b50351515611be1565b3480156109d657600080fd5b506104ca611c4c565b3480156109eb57600080fd5b5061047560048036036020811015610a0257600080fd5b50356001600160a01b0316611c5b565b348015610a1e57600080fd5b506104b360048036036020811015610a3557600080fd5b5035611c79565b348015610a4857600080fd5b506104ca611d27565b348015610a5d57600080fd5b506104ca611d36565b348015610a7257600080fd5b506103c7611d45565b348015610a8757600080fd5b506104b360048036036020811015610a9e57600080fd5b50351515611da6565b348015610ab357600080fd5b506104fb611e1c565b348015610ac857600080fd5b5061047560048036036040811015610adf57600080fd5b506001600160a01b038135169060200135611e22565b348015610b0157600080fd5b506104fb611e90565b348015610b1657600080fd5b5061047560048036036040811015610b2d57600080fd5b506001600160a01b038135169060200135611e96565b348015610b4f57600080fd5b506104fb611eaa565b348015610b6457600080fd5b50610475611eb0565b348015610b7957600080fd5b506104fb611ec0565b348015610b8e57600080fd5b506104b360048036036020811015610ba557600080fd5b50351515611ec6565b348015610bba57600080fd5b506104b3611f3c565b348015610bcf57600080fd5b506104b360048036036020811015610be657600080fd5b50351515611fcd565b348015610bfb57600080fd5b50610475612078565b348015610c1057600080fd5b50610475612081565b348015610c2557600080fd5b5061047560048036036020811015610c3c57600080fd5b50356001600160a01b0316612091565b348015610c5857600080fd5b506104fb60048036036040811015610c6f57600080fd5b506001600160a01b03813581169160200135166120a6565b348015610c9357600080fd5b506104ca6120d1565b348015610ca857600080fd5b506104b360048036036020811015610cbf57600080fd5b50356001600160a01b03166120e0565b348015610cdb57600080fd5b50610475612159565b348015610cf057600080fd5b5061047560048036036020811015610d0757600080fd5b50356001600160a01b0316612169565b348015610d2357600080fd5b506104b360048036036020811015610d3a57600080fd5b50356001600160a01b031661217e565b348015610d5657600080fd5b506104fb612276565b60108054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610deb5780601f10610dc057610100808354040283529160200191610deb565b820191906000526020600020905b815481529060010190602001808311610dce57829003601f168201915b5050505050905090565b6000610e09610e0261227c565b8484612280565b5060015b92915050565b610e1b61227c565b6000546001600160a01b03908116911614610e6b576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b602555565b6023546001600160a01b031681565b600b5490565b610e8d61227c565b6000546001600160a01b03908116911614610edd576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600660209081526040808320805460ff19908116909155600790925290912080549091169055565b610f1b61227c565b6000546001600160a01b03908116911614610f6b576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b602180546001600160a01b0319166001600160a01b0392909216919091179055565b60155481565b6000610fa084848461236c565b61101684610fac61227c565b61101185604051806060016040528060288152602001613b0e602891396001600160a01b038a16600090815260046020526040812090610fea61227c565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61288216565b612280565b5060019392505050565b60125460ff1690565b61103161227c565b6000546001600160a01b03908116911614611081576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6001600160a01b031660009081526006602090815260408083208054600160ff1991821681179092556007909352922080549091169091179055565b6110c561227c565b6000546001600160a01b03908116911614611115576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b610384818385878901010101111561115e5760405162461bcd60e51b815260040180806020018281038252602d815260200180613a77602d913960400191505060405180910390fd5b601394909455601783905560158290556016819055601884905591010101601955565b602454600160c01b900460ff1681565b61119961227c565b6000546001600160a01b039081169116146111e9576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff16611256576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600a5481101561134e57816001600160a01b0316600a828154811061127a57fe5b6000918252602090912001546001600160a01b0316141561134657600a805460001981019081106112a757fe5b600091825260209091200154600a80546001600160a01b0390921691839081106112cd57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600990925220805460ff19169055600a80548061131f57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561134e565b600101611259565b5050565b6000610e0961135f61227c565b84611011856004600061137061227c565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61291916565b60135481565b6113b461227c565b6000546001600160a01b03908116911614611404576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b60248054911515600160c01b0260ff60c01b19909216919091179055565b61142a61227c565b6000546001600160a01b0390811691161461147a576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6024546001600160a01b031681565b602454600160a81b900460ff1681565b6114c561227c565b6000546001600160a01b03908116911614611515576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b602655565b61152261227c565b6000546001600160a01b03908116911614611572576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526009602052604090205460ff16156115e0576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600260205260409020541561163a576001600160a01b0381166000908152600260205260409020546116209061297a565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600960205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6001600160a01b03811660009081526005602052604090205460ff165b919050565b6116ca61227c565b6000546001600160a01b0390811691161461171a576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83670de0b6b3a7640000026040518082815260200191505060405180910390a3505050565b61177c61227c565b6000546001600160a01b039081169116146117cc576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b60018110156117da57600080fd5b611801816117f5612710600b546129d990919063ffffffff16565b9063ffffffff612a1b16565b600f5550565b61180f61227c565b6000546001600160a01b0390811691161461185f576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b602080546001600160a01b0319166001600160a01b0392909216919091179055565b61188961227c565b6000546001600160a01b039081169116146118d9576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b602280546001600160a01b0319166001600160a01b0392909216919091179055565b60175481565b61190961227c565b6000546001600160a01b03908116911614611959576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b601554601854479160009161199891611978919063ffffffff61291916565b60155461198c90859063ffffffff612a1b16565b9063ffffffff6129d916565b905060006119ca6119b660155460185461291990919063ffffffff16565b60185461198c90869063ffffffff612a1b16565b90508015611a0e576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a0c573d6000803e3d6000fd5b505b8115611a50576020546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611a4e573d6000803e3d6000fd5b505b505050565b6001600160a01b03811660009081526009602052604081205460ff1615611a9557506001600160a01b0381166000908152600360205260409020546116bd565b6001600160a01b038216600090815260026020526040902054610e0d9061297a565b611abf61227c565b6000546001600160a01b03908116911614611b0f576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611b6161227c565b6000546001600160a01b03908116911614611bb1576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b611bcc816117f5612710600b546129d990919063ffffffff16565b600e5550565b6020546001600160a01b031681565b611be961227c565b6000546001600160a01b03908116911614611c39576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6028805460ff1916911515919091179055565b601f546001600160a01b031681565b6001600160a01b031660009081526009602052604090205460ff1690565b6024805460ff60a01b1916600160a01b179055611c9461227c565b6000546001600160a01b03908116911614611ce4576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6000611cef30611a55565b90506000611d0a836117f584620186a063ffffffff6129d916565b9050611d1581612a74565b50506024805460ff60a01b1916905550565b6000546001600160a01b031690565b6021546001600160a01b031681565b60118054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610deb5780601f10610dc057610100808354040283529160200191610deb565b611dae61227c565b6000546001600160a01b03908116911614611dfe576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b60248054911515600160c81b0260ff60c81b19909216919091179055565b600d5490565b6000610e09611e2f61227c565b8461101185604051806060016040528060258152602001613bc86025913960046000611e5961227c565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61288216565b601e5481565b6000610e09611ea361227c565b848461236c565b60185481565b602454600160b01b900460ff1681565b60165481565b611ece61227c565b6000546001600160a01b03908116911614611f1e576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b60248054911515600160b81b0260ff60b81b19909216919091179055565b6024805460ff60a01b1916600160a01b179055611f5761227c565b6000546001600160a01b03908116911614611fa7576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6000611fb230611a55565b9050611fbd81612a74565b506024805460ff60a01b19169055565b611fd561227c565b6000546001600160a01b03908116911614612025576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b60248054821515600160a81b810260ff60a81b199092169190911790915560408051918252517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599181900360200190a150565b60285460ff1681565b602454600160c81b900460ff1681565b60076020526000908152604090205460ff1681565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6022546001600160a01b031681565b6120e861227c565b6000546001600160a01b03908116911614612138576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b602454600160b81b900460ff1681565b60086020526000908152604090205460ff1681565b61218661227c565b6000546001600160a01b039081169116146121d6576040805162461bcd60e51b81526020600482018190526024820152600080516020613b36833981519152604482015290519081900360640190fd5b6001600160a01b03811661221b5760405162461bcd60e51b8152600401808060200182810382526026815260200180613a2f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600f5481565b3390565b6001600160a01b0383166122c55760405162461bcd60e51b8152600401808060200182810382526024815260200180613ba46024913960400191505060405180910390fd5b6001600160a01b03821661230a5760405162461bcd60e51b8152600401808060200182810382526022815260200180613a556022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166123b15760405162461bcd60e51b8152600401808060200182810382526025815260200180613b7f6025913960400191505060405180910390fd5b6001600160a01b0382166123f65760405162461bcd60e51b81526004018080602001828103825260238152602001806139e26023913960400191505060405180910390fd5b600081116124355760405162461bcd60e51b8152600401808060200182810382526029815260200180613b566029913960400191505060405180910390fd5b602454600160c01b900460ff1615612769576001600160a01b03821660009081526007602052604090205460ff1615801561248957506001600160a01b03821660009081526005602052604090205460ff16155b80156124ae5750612498611d27565b6001600160a01b0316836001600160a01b031614155b80156124d357506124bd611d27565b6001600160a01b0316826001600160a01b031614155b80156124ed57506024546001600160a01b03838116911614155b1561256357600e5481111561253c576040805162461bcd60e51b815260206004820152601060248201526f4f76657220746865204d61782062757960801b604482015290519081900360640190fd5b600f5461255861254b84611a55565b839063ffffffff61291916565b111561256357600080fd5b61256b611d27565b6001600160a01b0316836001600160a01b0316141580156125a5575061258f611d27565b6001600160a01b0316826001600160a01b031614155b80156125b957506001600160a01b03821615155b80156125d057506001600160a01b03821661dead14155b80156125e65750602454600160a01b900460ff16155b1561276957602454600160b81b900460ff166126a8576001600160a01b03831660009081526005602052604090205460ff168061263b57506001600160a01b03821660009081526005602052604090205460ff165b8061265e57506001600160a01b03821660009081526006602052604090205460ff165b6126a8576040805162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015290519081900360640190fd5b60285460ff1615612769576126bb611d27565b6001600160a01b0316826001600160a01b0316141580156126ea57506023546001600160a01b03838116911614155b801561270457506024546001600160a01b03838116911614155b15612769573260009081526027602052604090205443116127565760405162461bcd60e51b8152600401808060200182810382526049815260200180613aa46049913960600191505060405180910390fd5b3260009081526027602052604090204390555b6000612794601d54612788601c54601b5461291990919063ffffffff16565b9063ffffffff61291916565b60255460245491925082101590600160a01b900460ff161580156127c657506024546001600160a01b03868116911614155b80156127db5750602454600160a81b900460ff165b80156127e45750805b156127f1576127f1612c1a565b6001600160a01b03851660009081526005602052604090205460019060ff168061283357506001600160a01b03851660009081526005602052604090205460ff165b8061286557506024546001600160a01b0387811691161480159061286557506024546001600160a01b03868116911614155b1561286e575060005b61287a86868684612ee9565b505050505050565b600081848411156129115760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128d65781810151838201526020016128be565b50505050905090810190601f1680156129035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015612973576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000600c548211156129bd5760405162461bcd60e51b815260040180806020018281038252602a815260200180613a05602a913960400191505060405180910390fd5b60006129c7613057565b9050612973838263ffffffff6129d916565b600061297383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613080565b600082612a2a57506000610e0d565b82820282848281612a3757fe5b04146129735760405162461bcd60e51b8152600401808060200182810382526021815260200180613aed6021913960400191505060405180910390fd5b60408051600280825260608083018452926020830190803883390190505090503081600081518110612aa257fe5b6001600160a01b03928316602091820292909201810191909152602354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612af657600080fd5b505afa158015612b0a573d6000803e3d6000fd5b505050506040513d6020811015612b2057600080fd5b5051815182906001908110612b3157fe5b6001600160a01b039283166020918202929092010152602354612b579130911684612280565b60235460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015612bdd578181015183820152602001612bc5565b505050509050019650505050505050600060405180830381600087803b158015612c0657600080fd5b505af115801561287a573d6000803e3d6000fd5b6024805460ff60a01b1916600160a01b179055601c54601b54601d54600092612c4e9290916127889163ffffffff61291916565b60245490915060009081908190600160c81b900460ff168015612c835750602554612c8090601463ffffffff612a1b16565b84115b15612d2557612ca360136117f56014601d546129d990919063ffffffff16565b601d54909350612cb9908463ffffffff6130e516565b601d55601c54612cd7906013906117f590601463ffffffff6129d916565b601c54909250612ced908363ffffffff6130e516565b601c55601b54612d0b906013906117f590601463ffffffff6129d916565b601b54909150612d21908263ffffffff6130e516565b601b555b601b54600090612d3c90600263ffffffff6129d916565b90506000612d5582601b546130e590919063ffffffff16565b90506000612d74601d54612788601c548661291990919063ffffffff16565b905047612d8082612a74565b6000612d92478363ffffffff6130e516565b90506000612daa8461198c848963ffffffff612a1b16565b90506000612dc78561198c601c5486612a1b90919063ffffffff16565b90506000612deb82612ddf868663ffffffff6130e516565b9063ffffffff6130e516565b90508215612e3e57612dfd8784613127565b604080518981526020810185905280820189905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b8115612e80576020546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612e7e573d6000803e3d6000fd5b505b8015612ec2576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612ec0573d6000803e3d6000fd5b505b505050601b95909555505050601c929092555050601d55506024805460ff60a01b19169055565b80612ef657612ef6613206565b6001600160a01b03841660009081526009602052604090205460ff168015612f3757506001600160a01b03831660009081526009602052604090205460ff16155b15612f4c57612f47848484613238565b61304a565b6001600160a01b03841660009081526009602052604090205460ff16158015612f8d57506001600160a01b03831660009081526009602052604090205460ff165b15612f9d57612f4784848461336f565b6001600160a01b03841660009081526009602052604090205460ff16158015612fdf57506001600160a01b03831660009081526009602052604090205460ff16155b15612fef57612f4784848461342a565b6001600160a01b03841660009081526009602052604090205460ff16801561302f57506001600160a01b03831660009081526009602052604090205460ff165b1561303f57612f47848484613474565b61304a84848461342a565b80611a4e57611a4e6134f3565b6000806000613064613501565b9092509050613079828263ffffffff6129d916565b9250505090565b600081836130cf5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156128d65781810151838201526020016128be565b5060008385816130db57fe5b0495945050505050565b600061297383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612882565b60235461313f9030906001600160a01b031684612280565b6023546001600160a01b031663f305d71982308560008061315e611d27565b426040518863ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b03166001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b1580156131db57600080fd5b505af11580156131ef573d6000803e3d6000fd5b50505050506040513d6060811015611a4e57600080fd5b6013541580156132165750601954155b1561322057613236565b6013805460145560198054601a55600091829055555b565b60008060008060008061324a87613676565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150613282908863ffffffff6130e516565b6001600160a01b038a166000908152600360209081526040808320939093556002905220546132b7908763ffffffff6130e516565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546132ec908663ffffffff61291916565b6001600160a01b03891660009081526002602052604090205561330f818a6136c5565b61331984836137c1565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b60008060008060008061338187613676565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506133b9908763ffffffff6130e516565b6001600160a01b03808b16600090815260026020908152604080832094909455918b168152600390915220546133f5908463ffffffff61291916565b6001600160a01b0389166000908152600360209081526040808320939093556002905220546132ec908663ffffffff61291916565b60008060008060008061343c87613676565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506132b7908763ffffffff6130e516565b60008060008060008061348687613676565b6001600160a01b038f16600090815260036020526040902054959b509399509197509550935091506134be908863ffffffff6130e516565b6001600160a01b038a166000908152600360209081526040808320939093556002905220546133b9908763ffffffff6130e516565b601454601355601a54601955565b600c54600b546000918291825b600a5481101561363e578260026000600a848154811061352a57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061358f57508160036000600a848154811061356857fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156135a657600c54600b5494509450505050613672565b6135ec60026000600a84815481106135ba57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849063ffffffff6130e516565b925061363460036000600a848154811061360257fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839063ffffffff6130e516565b915060010161350e565b50600b54600c546136549163ffffffff6129d916565b82101561366c57600c54600b54935093505050613672565b90925090505b9091565b600080600080600080600080600061368d8a6137f1565b92509250925060008060006136ab8d86866136a6613057565b613833565b919f909e50909c50959a5093985091965092945050505050565b6019546136d15761134e565b60006136ee60195461198c60155486612a1b90919063ffffffff16565b9050600061370d60195461198c60185487612a1b90919063ffffffff16565b9050600061372c60195461198c60165488612a1b90919063ffffffff16565b9050600061374682612ddf85818a8963ffffffff6130e516565b601f549091506137619086906001600160a01b03168461389b565b601b54613774908263ffffffff61291916565b601b55601c5461378a908563ffffffff61291916565b601c55601d546137a0908463ffffffff61291916565b601d5561287a85306137bc86612788868a63ffffffff61291916565b61389b565b600c546137d4908363ffffffff6130e516565b600c55600d546137ea908263ffffffff61291916565b600d555050565b600080600080613800856139a7565b9050600061380d866139c4565b9050600061382582612ddf898663ffffffff6130e516565b979296509094509092505050565b6000808080613848888663ffffffff612a1b16565b9050600061385c888763ffffffff612a1b16565b90506000613870888863ffffffff612a1b16565b9050600061388882612ddf868663ffffffff6130e516565b939b939a50919850919650505050505050565b60006138a5613057565b905060006138b9838363ffffffff612a1b16565b6001600160a01b0385166000908152600260205260409020549091506138e5908263ffffffff61291916565b6001600160a01b03851660009081526002602090815260408083209390935560099052205460ff1615613955576001600160a01b03841660009081526003602052604090205461393b908463ffffffff61291916565b6001600160a01b0385166000908152600360205260409020555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000610e0d6103e861198c60135485612a1b90919063ffffffff16565b6000610e0d6103e861198c60195485612a1b90919063ffffffff1656fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373546f74616c207461782073686f756c64206e6f74206d6f7265207468616e2039302520283930302f31303030295f7472616e736665723a3a205472616e736665722044656c617920656e61626c65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f7765642e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122086693f79cf4908e94ecdc0ee75dedae25a355b4cf52c04035d14412e26cffc1064736f6c63430006020033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77