0x60806040526006805461ff0019166101001790553480156200002057600080fd5b506040516200145838038062001458833981016040819052620000439162000368565b600080546001600160a01b0319163317905582516200006a9060049060208601906200020f565b508151620000809060059060208501906200020f565b506006805460ff191660ff8316179055620000b633620000a283600a6200044d565b620000b0906103e86200051b565b620000bf565b505050620005a6565b6001600160a01b0382166200011b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6000816003546200012d9190620003e9565b905081811015620001815760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000112565b8160036000828254620001959190620003e9565b90915550506001600160a01b03831660009081526001602052604081208054849290620001c4908490620003e9565b90915550506040518281526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b8280546200021d906200053d565b90600052602060002090601f0160209004810192826200024157600085556200028c565b82601f106200025c57805160ff19168380011785556200028c565b828001600101855582156200028c579182015b828111156200028c5782518255916020019190600101906200026f565b506200029a9291506200029e565b5090565b5b808211156200029a57600081556001016200029f565b600082601f830112620002c6578081fd5b81516001600160401b0380821115620002e357620002e362000590565b604051601f8301601f19908116603f011681019082821181831017156200030e576200030e62000590565b816040528381526020925086838588010111156200032a578485fd5b8491505b838210156200034d57858201830151818301840152908201906200032e565b838211156200035e57848385830101525b9695505050505050565b6000806000606084860312156200037d578283fd5b83516001600160401b038082111562000394578485fd5b620003a287838801620002b5565b94506020860151915080821115620003b8578384fd5b50620003c786828701620002b5565b925050604084015160ff81168114620003de578182fd5b809150509250925092565b60008219821115620003ff57620003ff6200057a565b500190565b600181815b80851115620004455781600019048211156200042957620004296200057a565b808516156200043757918102915b93841c939080029062000409565b509250929050565b60006200045e60ff84168362000465565b9392505050565b600082620004765750600162000515565b81620004855750600062000515565b81600181146200049e5760028114620004a957620004c9565b600191505062000515565b60ff841115620004bd57620004bd6200057a565b50506001821b62000515565b5060208310610133831016604e8410600b8410161715620004ee575081810a62000515565b620004fa838362000404565b80600019048211156200051157620005116200057a565b0290505b92915050565b60008160001904831182151516156200053857620005386200057a565b500290565b600181811c908216806200055257607f821691505b602082108114156200057457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b610ea280620005b66000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806379cc6790116100ad578063a457c2d711610071578063a457c2d71461026f578063a9059cbb14610282578063ad00ac9c14610295578063dd62ed3e146102a7578063f2fde38b146102e057600080fd5b806379cc679014610209578063893d20e81461021c5780638da5cb5b1461024157806395d89b4114610254578063a0712d681461025c57600080fd5b8063313ce567116100f4578063313ce5671461019157806339509351146101b0578063449a52f8146101c357806370a08231146101d8578063715018a61461020157600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd1461017e575b600080fd5b61012e6102f3565b60405161013b9190610d62565b60405180910390f35b610157610152366004610d21565b610381565b604051901515815260200161013b565b61017060035481565b60405190815260200161013b565b61015761018c366004610ce6565b610397565b60065461019e9060ff1681565b60405160ff909116815260200161013b565b6101576101be366004610d21565b610472565b6101d66101d1366004610d21565b6104d0565b005b6101706101e6366004610c93565b6001600160a01b031660009081526001602052604090205490565b6101d66104f5565b6101d6610217366004610d21565b610554565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b600054610229906001600160a01b031681565b61012e610575565b61015761026a366004610d4a565b610582565b61015761027d366004610d21565b6105ad565b610157610290366004610d21565b61064c565b60065461015790610100900460ff1681565b6101706102b5366004610cb4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101d66102ee366004610c93565b610659565b6004805461030090610e1b565b80601f016020809104026020016040519081016040528092919081815260200182805461032c90610e1b565b80156103795780601f1061034e57610100808354040283529160200191610379565b820191906000526020600020905b81548152906001019060200180831161035c57829003601f168201915b505050505081565b600061038e3384846106de565b50600192915050565b60006103a4848484610803565b6001600160a01b038416600090815260026020908152604080832033845290915290205482111561042d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6001600160a01b038416600090815260026020908152604080832033808552925290912054610468918691610463908690610e04565b6106de565b5060019392505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205481906104a3908490610dec565b9050828110156104c55760405162461bcd60e51b815260040161042490610db5565b6104683385836106de565b6000546001600160a01b031633146104e757600080fd5b6104f18282610a14565b5050565b6000546001600160a01b0316331461050c57600080fd5b600080546040516001600160a01b03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a2600080546001600160a01b0319169055565b6000546001600160a01b0316331461056b57600080fd5b6104f18282610b1e565b6005805461030090610e1b565b600080546001600160a01b0316331461059a57600080fd5b6105a43383610a14565b5060015b919050565b3360009081526002602090815260408083209091528120548211156106225760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610424565b33600081815260026020908152604080832090915290205461038e91908590610463908690610e04565b600061038e338484610803565b6000546001600160a01b0316331461067057600080fd5b6001600160a01b03811661068357600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610424565b6001600160a01b0382166107a15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610424565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610424565b6001600160a01b0382166108c95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610424565b6001600160a01b0383166000908152600160205260409020548111156109405760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610424565b6001600160a01b03831660009081526001602052604081208054839290610968908490610e04565b90915550506001600160a01b038216600090815260016020526040812054610991908390610dec565b9050818110156109b35760405162461bcd60e51b815260040161042490610db5565b6001600160a01b03808416600081815260016020526040908190208490555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a069086815260200190565b60405180910390a350505050565b6001600160a01b038216610a6a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610424565b600081600354610a7a9190610dec565b905081811015610a9c5760405162461bcd60e51b815260040161042490610db5565b8160036000828254610aae9190610dec565b90915550506001600160a01b03831660009081526001602052604081208054849290610adb908490610dec565b90915550506040518281526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016107f6565b6001600160a01b038216610b7e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610424565b6001600160a01b038216600090815260016020526040902054811115610bf15760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610424565b6001600160a01b03821660009081526001602052604081208054839290610c19908490610e04565b925050819055508060036000828254610c329190610e04565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80356001600160a01b03811681146105a857600080fd5b600060208284031215610ca4578081fd5b610cad82610c7c565b9392505050565b60008060408385031215610cc6578081fd5b610ccf83610c7c565b9150610cdd60208401610c7c565b90509250929050565b600080600060608486031215610cfa578081fd5b610d0384610c7c565b9250610d1160208501610c7c565b9150604084013590509250925092565b60008060408385031215610d33578182fd5b610d3c83610c7c565b946020939093013593505050565b600060208284031215610d5b578081fd5b5035919050565b6000602080835283518082850152825b81811015610d8e57858101830151858201604001528201610d72565b81811115610d9f5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60008219821115610dff57610dff610e56565b500190565b600082821015610e1657610e16610e56565b500390565b600181811c90821680610e2f57607f821691505b60208210811415610e5057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea264697066735822122086acb4614bc0fed8a2b06e3638c68b3eb3ca2e508f529495ed5c9b474381ad4e64736f6c63430008040033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000b50656767656420474c58590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004474c585900000000000000000000000000000000000000000000000000000000