60806040523480156200001157600080fd5b5060405162001e8238038062001e82833981810160405260a08110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b5060409081526020828101519183015160609093015187519295509293508291879187918791620001cf9160039186019062000669565b508151620001e590600490602085019062000669565b506005805460ff191660ff92909216919091179055506200021a90506200020b620002c3565b6001600160e01b03620002c816565b6000811162000270576040805162461bcd60e51b815260206004820152601560248201527f45524332304361707065643a2063617020697320300000000000000000000000604482015290519081900360640190fd5b600755620002996200028a6001600160e01b03620002c316565b6001600160e01b036200031a16565b6009805460ff19169055620002b833836001600160e01b036200036c16565b50505050506200070b565b335b90565b620002e38160066200040a60201b620014841790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b620003358160086200040a60201b620014841790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6007546200039b82620003876001600160e01b036200049716565b6200049d60201b620012911790919060201c565b1115620003ef576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b620004068282620004ff60201b620012eb1760201c565b5050565b6200041f82826001600160e01b036200060016565b1562000472576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60025490565b600082820183811015620004f8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166200055b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000577816002546200049d60201b620012911790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005aa918390620012916200049d821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60006001600160a01b038216620006495760405162461bcd60e51b815260040180806020018281038252602281526020018062001e606022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620006ac57805160ff1916838001178555620006dc565b82800160010185558215620006dc579182015b82811115620006dc578251825591602001919060010190620006bf565b50620006ea929150620006ee565b5090565b620002c591905b80821115620006ea5760008155600101620006f5565b611745806200071b6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636ef8d66d116100c3578063983b2d561161007c578063983b2d56146103cd57806398650275146103f3578063a457c2d7146103fb578063a9059cbb14610427578063aa271e1a14610453578063dd62ed3e1461047957610158565b80636ef8d66d1461033d57806370a082311461034557806379cc67901461036b57806382dc1ec4146103975780638456cb59146103bd57806395d89b41146103c557610158565b8063395093511161011557806339509351146102905780633f4ba83a146102bc57806340c10f19146102c657806342966c68146102f257806346fbf68e1461030f5780635c975abb1461033557610158565b806306fdde031461015d578063095ea7b3146101da57806318160ddd1461021a57806323b872dd14610234578063313ce5671461026a578063355274ea14610288575b600080fd5b6101656104a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019f578181015183820152602001610187565b50505050905090810190601f1680156101cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610206600480360360408110156101f057600080fd5b506001600160a01b03813516906020013561053d565b604080519115158252519081900360200190f35b61022261059c565b60408051918252519081900360200190f35b6102066004803603606081101561024a57600080fd5b506001600160a01b038135811691602081013590911690604001356105a2565b610272610603565b6040805160ff9092168252519081900360200190f35b61022261060c565b610206600480360360408110156102a657600080fd5b506001600160a01b038135169060200135610612565b6102c461066a565b005b610206600480360360408110156102dc57600080fd5b506001600160a01b038135169060200135610753565b6102c46004803603602081101561030857600080fd5b50356107b3565b6102066004803603602081101561032557600080fd5b50356001600160a01b03166107c7565b6102066107e0565b6102c46107e9565b6102226004803603602081101561035b57600080fd5b50356001600160a01b03166107fb565b6102c46004803603604081101561038157600080fd5b506001600160a01b038135169060200135610816565b6102c4600480360360208110156103ad57600080fd5b50356001600160a01b0316610824565b6102c4610873565b61016561093a565b6102c4600480360360208110156103e357600080fd5b50356001600160a01b031661099b565b6102c46109ea565b6102066004803603604081101561041157600080fd5b506001600160a01b0381351690602001356109fa565b6102066004803603604081101561043d57600080fd5b506001600160a01b038135169060200135610a52565b6102066004803603602081101561046957600080fd5b50356001600160a01b0316610aaa565b6102226004803603604081101561048f57600080fd5b506001600160a01b0381358116916020013516610abd565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105335780601f1061050857610100808354040283529160200191610533565b820191906000526020600020905b81548152906001019060200180831161051657829003601f168201915b5050505050905090565b60095460009060ff161561058b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6105958383610ae8565b9392505050565b60025490565b60095460009060ff16156105f0576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6105fb848484610afc565b949350505050565b60055460ff1690565b60075490565b60095460009060ff1615610660576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6105958383610b89565b61067a610675610bdd565b6107c7565b6106b55760405162461bcd60e51b815260040180806020018281038252603081526020018061154b6030913960400191505060405180910390fd5b60095460ff16610703576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6009805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610736610bdd565b604080516001600160a01b039092168252519081900360200190a1565b6000610765610760610bdd565b610aaa565b6107a05760405162461bcd60e51b81526004018080602001828103825260308152602001806115c36030913960400191505060405180910390fd5b6107aa8383610be1565b50600192915050565b6107c46107be610bdd565b82610c59565b50565b60006107da60088363ffffffff610d5516565b92915050565b60095460ff1690565b6107f96107f4610bdd565b610dbc565b565b6001600160a01b031660009081526020819052604090205490565b6108208282610e04565b5050565b61082f610675610bdd565b61086a5760405162461bcd60e51b815260040180806020018281038252603081526020018061154b6030913960400191505060405180910390fd5b6107c481610e58565b61087e610675610bdd565b6108b95760405162461bcd60e51b815260040180806020018281038252603081526020018061154b6030913960400191505060405180910390fd5b60095460ff1615610904576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6009805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610736610bdd565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105335780601f1061050857610100808354040283529160200191610533565b6109a6610760610bdd565b6109e15760405162461bcd60e51b81526004018080602001828103825260308152602001806115c36030913960400191505060405180910390fd5b6107c481610ea0565b6107f96109f5610bdd565b610ee8565b60095460009060ff1615610a48576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6105958383610f30565b60095460009060ff1615610aa0576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6105958383610f9e565b60006107da60068363ffffffff610d5516565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60006107aa610af5610bdd565b8484610fb2565b6000610b0984848461109e565b610b7f84610b15610bdd565b610b7a85604051806060016040528060288152602001611614602891396001600160a01b038a16600090815260016020526040812090610b53610bdd565b6001600160a01b03168152602081019190915260400160002054919063ffffffff6111fa16565b610fb2565b5060019392505050565b60006107aa610b96610bdd565b84610b7a8560016000610ba7610bdd565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61129116565b3390565b600754610bfc82610bf061059c565b9063ffffffff61129116565b1115610c4f576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b61082082826112eb565b6001600160a01b038216610c9e5760405162461bcd60e51b81526004018080602001828103825260218152602001806116826021913960400191505060405180910390fd5b610ce181604051806060016040528060228152602001611529602291396001600160a01b038516600090815260208190526040902054919063ffffffff6111fa16565b6001600160a01b038316600090815260208190526040902055600254610d0d908263ffffffff6113db16565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006001600160a01b038216610d9c5760405162461bcd60e51b815260040180806020018281038252602281526020018061163c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610dcd60088263ffffffff61141d16565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610e0e8282610c59565b61082082610e1a610bdd565b610b7a8460405180606001604052806024815260200161165e602491396001600160a01b038816600090815260016020526040812090610b53610bdd565b610e6960088263ffffffff61148416565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b610eb160068263ffffffff61148416565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b610ef960068263ffffffff61141d16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60006107aa610f3d610bdd565b84610b7a856040518060600160405280602581526020016116ec6025913960016000610f67610bdd565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6111fa16565b60006107aa610fab610bdd565b848461109e565b6001600160a01b038316610ff75760405162461bcd60e51b81526004018080602001828103825260248152602001806116c86024913960400191505060405180910390fd5b6001600160a01b03821661103c5760405162461bcd60e51b815260040180806020018281038252602281526020018061157b6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166110e35760405162461bcd60e51b81526004018080602001828103825260258152602001806116a36025913960400191505060405180910390fd5b6001600160a01b0382166111285760405162461bcd60e51b81526004018080602001828103825260238152602001806115066023913960400191505060405180910390fd5b61116b8160405180606001604052806026815260200161159d602691396001600160a01b038616600090815260208190526040902054919063ffffffff6111fa16565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546111a0908263ffffffff61129116565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156112895760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561124e578181015183820152602001611236565b50505050905090810190601f16801561127b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610595576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216611346576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254611359908263ffffffff61129116565b6002556001600160a01b038216600090815260208190526040902054611385908263ffffffff61129116565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600061059583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111fa565b6114278282610d55565b6114625760405162461bcd60e51b81526004018080602001828103825260218152602001806115f36021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61148e8282610d55565b156114e0576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c6545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820cdc8fc10ff6b593e6723756a65890cf9378aa74d39cbf4380420013ae98bfe6864736f6c634300050f0032526f6c65733a206163636f756e7420697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000813f3978f8940984400000000000000000000000000000000000000000000000813f3978f89409844000000000000000000000000000000000000000000000000000000000000000000000e506c61794461707020546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003504c410000000000000000000000000000000000000000000000000000000000