60806040526006805460ff60a01b191690553480156200001e57600080fd5b50604051620010d5380380620010d5833981016040819052620000419162000162565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000906009600a620002cf565b620000a0906319133850620002e7565b3360008181526003602090815260408083209490945581546001600160a01b0390811683526005909152928120805460ff199081166001908117909255600280546001600160a81b031916610100968816969096029091169490941760ff87161790935591859055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001386009600a620002cf565b62000148906319133850620002e7565b60405190815260200160405180910390a350505062000309565b6000806000606084860312156200017857600080fd5b83519250602084015160ff811681146200019157600080fd5b60408501519092506001600160a01b0381168114620001af57600080fd5b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000211578160001904821115620001f557620001f5620001ba565b808516156200020357918102915b93841c9390800290620001d5565b509250929050565b6000826200022a57506001620002c9565b816200023957506000620002c9565b81600181146200025257600281146200025d576200027d565b6001915050620002c9565b60ff841115620002715762000271620001ba565b50506001821b620002c9565b5060208310610133831016604e8410600b8410161715620002a2575081810a620002c9565b620002ae8383620001d0565b8060001904821115620002c557620002c5620001ba565b0290505b92915050565b6000620002e060ff84168362000219565b9392505050565b6000816000190483118215151615620003045762000304620001ba565b500290565b610dbc80620003196000396000f3fe6080604052600436106100c65760003560e01c806370a082311161007f57806395d89b411161005957806395d89b4114610246578063a9059cbb14610273578063d9e6646014610293578063dd62ed3e146102b357600080fd5b806370a08231146101c7578063715018a6146101fd5780638da5cb5b1461021457600080fd5b806306fdde03146100d2578063095ea7b31461011157806318160ddd1461014157806323b872dd14610164578063313ce56714610184578063526b233d146101a657600080fd5b366100cd57005b600080fd5b3480156100de57600080fd5b50604080518082019091526004815263416e647960e01b60208201525b6040516101089190610ad0565b60405180910390f35b34801561011d57600080fd5b5061013161012c366004610b3a565b6102f9565b6040519015158152602001610108565b34801561014d57600080fd5b50610156610310565b604051908152602001610108565b34801561017057600080fd5b5061013161017f366004610b64565b610331565b34801561019057600080fd5b5060095b60405160ff9091168152602001610108565b3480156101b257600080fd5b5060065461019490600160a01b900460ff1681565b3480156101d357600080fd5b506101566101e2366004610ba0565b6001600160a01b031660009081526003602052604090205490565b34801561020957600080fd5b5061021261039a565b005b34801561022057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610108565b34801561025257600080fd5b50604080518082019091526004815263414e445960e01b60208201526100fb565b34801561027f57600080fd5b5061013161028e366004610b3a565b610443565b34801561029f57600080fd5b5060065461022e906001600160a01b031681565b3480156102bf57600080fd5b506101566102ce366004610bbb565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6000610306338484610450565b5060015b92915050565b600061031e6009600a610ce8565b61032c906319133850610cf7565b905090565b600061033e848484610574565b610390843361038b85604051806060016040528060288152602001610d5f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610901565b610450565b5060019392505050565b6000546001600160a01b031633146103f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610306338484610574565b6001600160a01b0383166104b25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103f0565b6001600160a01b0382166105135760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103f0565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b306000908152600360205260409020546001600160a01b0384166105da5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a2066726f6d20746865207a65726f20616464726573730000000060448201526064016103f0565b6001600160a01b0383166105ed57600080fd5b600082116105fa57600080fd5b6000546001600160a01b038581169116148061062357506000546001600160a01b038481169116145b8061064657506001600160a01b03831660009081526005602052604090205460ff165b8061066957506001600160a01b03841660009081526005602052604090205460ff165b1561076e576001600160a01b038416600090815260036020526040812054610691908461093b565b6001600160a01b03808716600081815260036020526040902092909255600654161480156106bf5750600082115b80156106e357506001600160a01b03841660009081526005602052604090205460ff165b15610723576000546001600160a01b03166001600160a01b0316846001600160a01b031603610713576000610720565b600154610720908461093b565b90505b61074f6107308483610984565b6001600160a01b03861660009081526003602052604090205490610984565b6001600160a01b038516600090815260036020526040902055506108ae565b6002546001600160a01b038481166101009092041614801561079d57506006546001600160a01b90910460ff16105b156107c457600680546001600160a81b0319166001600160a01b03861617600160a01b1790555b306001600160a01b038416036107d957600080fd5b600654600160a01b900460ff166107ef57600080fd5b6001600160a01b038416600090815260036020526040902054610812908361093b565b6001600160a01b038516600090815260036020526040812091909155610843606461083d85846109e3565b90610a65565b6006549091506001600160a01b0386811691161461088657610883606461083d600185106108765760025460ff16610879565b60005b869060ff166109e3565b90505b610893610730848361093b565b6001600160a01b038516600090815260036020526040902055505b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108f391815260200190565b60405180910390a350505050565b600081848411156109255760405162461bcd60e51b81526004016103f09190610ad0565b5060006109328486610d16565b95945050505050565b600061097d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610901565b9392505050565b6000806109918385610d29565b90508381101561097d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103f0565b6000826000036109f55750600061030a565b6000610a018385610cf7565b905082610a0e8583610d3c565b1461097d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103f0565b600061097d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183610ac35760405162461bcd60e51b81526004016103f09190610ad0565b5060006109328486610d3c565b600060208083528351808285015260005b81811015610afd57858101830151858201604001528201610ae1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b3557600080fd5b919050565b60008060408385031215610b4d57600080fd5b610b5683610b1e565b946020939093013593505050565b600080600060608486031215610b7957600080fd5b610b8284610b1e565b9250610b9060208501610b1e565b9150604084013590509250925092565b600060208284031215610bb257600080fd5b61097d82610b1e565b60008060408385031215610bce57600080fd5b610bd783610b1e565b9150610be560208401610b1e565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610c3f578160001904821115610c2557610c25610bee565b80851615610c3257918102915b93841c9390800290610c09565b509250929050565b600082610c565750600161030a565b81610c635750600061030a565b8160018114610c795760028114610c8357610c9f565b600191505061030a565b60ff841115610c9457610c94610bee565b50506001821b61030a565b5060208310610133831016604e8410600b8410161715610cc2575081810a61030a565b610ccc8383610c04565b8060001904821115610ce057610ce0610bee565b029392505050565b600061097d60ff841683610c47565b6000816000190483118215151615610d1157610d11610bee565b500290565b8181038181111561030a5761030a610bee565b8082018082111561030a5761030a610bee565b600082610d5957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ba59f1517b1cae5ade4dabe4b8604a847c004db8417505a62a2e25dfcaa65f2f64736f6c634300081000330000000000000000000000000000000000000000000000e40e772ce376d20000000000000000000000000000000000000000000000000000000000000000006200000000000000000000000087bab84084f9fb335fdd8923cd354c2227a5121f