6080604052601380546001600160a01b03191661dead179055601a805461ffff19166101001790553480156200003457600080fd5b506040516200554538038062005545833981016040819052620000579162000feb565b604080518082018252600a81526921aaa72a102a27a5a2a760b11b60208083019182528351808501909452600484526310d5539560e21b9084015281518c938c93929091620000a99160039162000e20565b508051620000bf90600490602084019062000e20565b5050506000620000d4620009dd60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508051825114620001945760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620001e75760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f2070617965657300000000000060448201526064016200018b565b60005b825181101562000253576200023e8382815181106200020d576200020d62001215565b60200260200101518383815181106200022a576200022a62001215565b6020026020010151620009e160201b60201c565b806200024a81620011e1565b915050620001ea565b5050600d80546001600160a01b0319166001600160a01b0384161790555086518790600490811062000289576200028962001215565b6020026020010151601060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600581518110620002cd57620002cd62001215565b6020908102919091010151601180546001600160a01b03199081166001600160a01b03938416179091556012805490911684831617905560105416158015906200032157506011546001600160a01b031615155b6200037d5760405162461bcd60e51b815260206004820152602560248201527f465554555220262052455741524420414444524553532043414e4e4f54204245604482015264205a45524f60d81b60648201526084016200018b565b6001600160a01b038316620003d55760405162461bcd60e51b815260206004820152601560248201527f524f555445522043414e4e4f54204245205a45524f000000000000000000000060448201526064016200018b565b60008390506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041657600080fd5b505afa1580156200042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000451919062000fcd565b6001600160a01b031663e6a43905601260009054906101000a90046001600160a01b0316846001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b158015620004af57600080fd5b505afa158015620004c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ea919062000fcd565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b1580156200053157600080fd5b505afa15801562000546573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200056c919062000fcd565b600e80546001600160a01b038086166001600160a01b031992831617909255600f8054928416929091169190911790559050620005ab81600162000bcf565b86600081518110620005c157620005c162001215565b6020026020010151600014158015620005f8575086600181518110620005eb57620005eb62001215565b6020026020010151600014155b80156200062357508660028151811062000616576200061662001215565b6020026020010151600014155b80156200064e57508660038151811062000641576200064162001215565b6020026020010151600014155b6200069c5760405162461bcd60e51b815260206004820152601460248201527f434f4e5354523a204665657320657175616c203000000000000000000000000060448201526064016200018b565b86600081518110620006b257620006b262001215565b602002602001015160168190555086600181518110620006d657620006d662001215565b602002602001015160148190555086600281518110620006fa57620006fa62001215565b6020026020010151601581905550866003815181106200071e576200071e62001215565b60200260200101516018819055508660048151811062000742576200074262001215565b6020026020010151601981905550620007896016546200077560155460145462000cba60201b62002c531790919060201c565b62000cba60201b62002c531790919060201c565b6017558851158015906200079e575060008851115b620008125760405162461bcd60e51b815260206004820152603860248201527f434f4e5354523a20616464726573736573206172726179206c656e677468206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016200018b565b8751895114620008765760405162461bcd60e51b815260206004820152602860248201527f434f4e5354523a2061646472657373657320617272617973206c656e677468206044820152670dad2e6dac2e8c6d60c31b60648201526084016200018b565b60005b8951811015620008f157620008dc8a82815181106200089c576200089c62001215565b60200260200101518a8381518110620008b957620008b962001215565b6020026020010151670de0b6b3a7640000620008d6919062001182565b62000d24565b80620008e881620011e1565b91505062000879565b506002546a10ebe24297ce6ff43c000014620009625760405162461bcd60e51b815260206004820152602960248201527f434f4e5354523a20746f74616c537570706c79206d75737420657175616c2032604482015268181036b4b63634b7b760b91b60648201526084016200018b565b60008611620009b45760405162461bcd60e51b815260206004820152601d60248201527f434f4e5354523a205377617020616d6f756e7420696e636f727265637400000060448201526064016200018b565b620009c886670de0b6b3a764000062001182565b601b5550620012419950505050505050505050565b3390565b6001600160a01b03821662000a4e5760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b60648201526084016200018b565b6000811162000aa05760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a2073686172657320617265203000000060448201526064016200018b565b6001600160a01b0382166000908152600860205260409020541562000b1c5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b60648201526084016200018b565b600a8054600181019091557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038416908117909155600090815260086020526040902081905560065462000b8690829062001167565b600655604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b6001600160a01b0382166000908152601d602052604090205460ff161515811515141562000c665760405162461bcd60e51b815260206004820152603d60248201527f544b4e3a204175746f6d61746564206d61726b6574206d616b6572207061697260448201527f20697320616c72656164792073657420746f20746861742076616c756500000060648201526084016200018b565b6001600160a01b0382166000818152601d6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60008062000cc9838562001167565b90508381101562000d1d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200018b565b9392505050565b6001600160a01b03821662000d7c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200018b565b62000d988160025462000cba60201b62002c531790919060201c565b6002556001600160a01b0382166000908152602081815260409091205462000dcb91839062002c5362000cba821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b82805462000e2e90620011a4565b90600052602060002090601f01602090048101928262000e52576000855562000e9d565b82601f1062000e6d57805160ff191683800117855562000e9d565b8280016001018555821562000e9d579182015b8281111562000e9d57825182559160200191906001019062000e80565b5062000eab92915062000eaf565b5090565b5b8082111562000eab576000815560010162000eb0565b80516001600160a01b038116811462000ede57600080fd5b919050565b600082601f83011262000ef557600080fd5b8151602062000f0e62000f088362001141565b6200110e565b80838252828201915082860187848660051b890101111562000f2f57600080fd5b60005b8581101562000f595762000f468262000ec6565b8452928401929084019060010162000f32565b5090979650505050505050565b600082601f83011262000f7857600080fd5b8151602062000f8b62000f088362001141565b80838252828201915082860187848660051b890101111562000fac57600080fd5b60005b8581101562000f595781518452928401929084019060010162000faf565b60006020828403121562000fe057600080fd5b62000d1d8262000ec6565b60008060008060008060008060006101208a8c0312156200100b57600080fd5b89516001600160401b03808211156200102357600080fd5b620010318d838e0162000ee3565b9a5060208c01519150808211156200104857600080fd5b620010568d838e0162000f66565b995060408c01519150808211156200106d57600080fd5b6200107b8d838e0162000ee3565b985060608c01519150808211156200109257600080fd5b620010a08d838e0162000f66565b975060808c0151915080821115620010b757600080fd5b50620010c68c828d0162000f66565b95505060a08a01519350620010de60c08b0162000ec6565b9250620010ee60e08b0162000ec6565b9150620010ff6101008b0162000ec6565b90509295985092959850929598565b604051601f8201601f191681016001600160401b03811182821017156200113957620011396200122b565b604052919050565b60006001600160401b038211156200115d576200115d6200122b565b5060051b60200190565b600082198211156200117d576200117d620011ff565b500190565b60008160001904831182151516156200119f576200119f620011ff565b500290565b600181811c90821680620011b957607f821691505b60208210811415620011db57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415620011f857620011f8620011ff565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6142f480620012516000396000f3fe6080604052600436106103b15760003560e01c80636d9ae0be116101e7578063a457c2d71161010d578063ce7c2ac2116100a0578063e33b7de31161006f578063e33b7de314610bb2578063f2fde38b14610bc7578063f74c993414610be7578063fb0a749414610c0757600080fd5b8063ce7c2ac214610ae0578063d79779b214610b16578063d892934214610b4c578063dd62ed3e14610b6c57600080fd5b8063b62496f5116100dc578063b62496f514610a59578063c164fa5714610a89578063c5ca7d6d14610a9e578063cd3e04ab14610abe57600080fd5b8063a457c2d7146109e3578063a538ddf214610a03578063a9059cbb14610a23578063ab57476114610a4357600080fd5b80638bc9c7b0116101855780639852595c116101545780639852595c146109585780639a7a23d61461098e5780639d76ea58146109ae578063a0a8fe65146109ce57600080fd5b80638bc9c7b0146108e55780638da5cb5b146109055780639349c47d1461092357806395d89b411461094357600080fd5b80637628b3d7116101c15780637628b3d71461086557806385141a771461088557806388c41d7c146108a55780638b83209b146108c557600080fd5b80636d9ae0be1461080457806370a082311461081a578063715018a61461085057600080fd5b8063406072a9116102d7578063545579731161026a57806365b8dbc01161023957806365b8dbc01461078457806365bfe430146107a45780636770474b146107c45780636815a91c146107e457600080fd5b8063545579731461072357806354f12f1f14610738578063583bd7a61461074e5780635f1c31821461076e57600080fd5b806348b75044116102a657806348b75044146106ac57806348e5642b146106cc57806349bd5a5e146106e157806353a374fe1461070157600080fd5b8063406072a9146106045780634195fbf31461064a57806342bc9fca1461066a57806344d831121461068a57600080fd5b806318160ddd1161034f5780632bb14e1d1161031e5780632bb14e1d1461059d578063313ce567146105b357806339509351146105cf5780633a98ef39146105ef57600080fd5b806318160ddd14610518578063191655871461052d5780631cdd3be31461054d57806323b872dd1461057d57600080fd5b80630c08f3001161038b5780630c08f3001461047c5780630eef1c141461049c57806313114a9d146104bc5780631694505e146104e057600080fd5b806306fdde03146103ff578063084a6bff1461042a578063095ea7b31461044c57600080fd5b366103fa577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b34801561040b57600080fd5b50610414610c27565b6040516104219190613e59565b60405180910390f35b34801561043657600080fd5b5061044a610445366004613c99565b610cb9565b005b34801561045857600080fd5b5061046c61046736600461398b565b610d13565b6040519015158152602001610421565b34801561048857600080fd5b5061044a6104973660046138a9565b610d2a565b3480156104a857600080fd5b5061044a6104b7366004613c14565b610d76565b3480156104c857600080fd5b506104d260175481565b604051908152602001610421565b3480156104ec57600080fd5b50600e54610500906001600160a01b031681565b6040516001600160a01b039091168152602001610421565b34801561052457600080fd5b506002546104d2565b34801561053957600080fd5b5061044a6105483660046138a9565b611394565b34801561055957600080fd5b5061046c6105683660046138a9565b601c6020526000908152604090205460ff1681565b34801561058957600080fd5b5061046c61059836600461391c565b6114c2565b3480156105a957600080fd5b506104d260145481565b3480156105bf57600080fd5b5060405160128152602001610421565b3480156105db57600080fd5b5061046c6105ea36600461398b565b61152c565b3480156105fb57600080fd5b506006546104d2565b34801561061057600080fd5b506104d261061f3660046138e3565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561065657600080fd5b5061044a610665366004613c99565b611562565b34801561067657600080fd5b5061044a610685366004613c99565b6115d5565b34801561069657600080fd5b5061069f611619565b6040516104219190613d78565b3480156106b857600080fd5b5061044a6106c73660046138e3565b61176f565b3480156106d857600080fd5b506104d2611957565b3480156106ed57600080fd5b50600f54610500906001600160a01b031681565b34801561070d57600080fd5b506107166119d4565b6040516104219190613dda565b34801561072f57600080fd5b5061044a611b26565b34801561074457600080fd5b506104d260155481565b34801561075a57600080fd5b5061044a610769366004613bda565b611ea1565b34801561077a57600080fd5b506104d2601b5481565b34801561079057600080fd5b5061044a61079f3660046138a9565b611ee5565b3480156107b057600080fd5b5061044a6107bf366004613c99565b612176565b3480156107d057600080fd5b5061044a6107df366004613c99565b6124e9565b3480156107f057600080fd5b5061044a6107ff366004613c99565b612518565b34801561081057600080fd5b506104d260185481565b34801561082657600080fd5b506104d26108353660046138a9565b6001600160a01b031660009081526020819052604090205490565b34801561085c57600080fd5b5061044a612547565b34801561087157600080fd5b50600d54610500906001600160a01b031681565b34801561089157600080fd5b50601354610500906001600160a01b031681565b3480156108b157600080fd5b5061044a6108c0366004613c99565b6125bb565b3480156108d157600080fd5b506105006108e0366004613c99565b6125ff565b3480156108f157600080fd5b5061044a610900366004613c99565b61262f565b34801561091157600080fd5b506005546001600160a01b0316610500565b34801561092f57600080fd5b5061044a61093e3660046138a9565b61265e565b34801561094f57600080fd5b506104146126aa565b34801561096457600080fd5b506104d26109733660046138a9565b6001600160a01b031660009081526009602052604090205490565b34801561099a57600080fd5b5061044a6109a936600461395d565b6126b9565b3480156109ba57600080fd5b50601254610500906001600160a01b031681565b3480156109da57600080fd5b506104d261277c565b3480156109ef57600080fd5b5061046c6109fe36600461398b565b6127c1565b348015610a0f57600080fd5b50601054610500906001600160a01b031681565b348015610a2f57600080fd5b5061046c610a3e36600461398b565b612810565b348015610a4f57600080fd5b506104d260165481565b348015610a6557600080fd5b5061046c610a743660046138a9565b601d6020526000908152604090205460ff1681565b348015610a9557600080fd5b5061071661281d565b348015610aaa57600080fd5b50601154610500906001600160a01b031681565b348015610aca57600080fd5b50610ad36128f8565b6040516104219190613e1e565b348015610aec57600080fd5b506104d2610afb3660046138a9565b6001600160a01b031660009081526008602052604090205490565b348015610b2257600080fd5b506104d2610b313660046138a9565b6001600160a01b03166000908152600b602052604090205490565b348015610b5857600080fd5b5061044a610b6736600461395d565b612a49565b348015610b7857600080fd5b506104d2610b873660046138e3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610bbe57600080fd5b506007546104d2565b348015610bd357600080fd5b5061044a610be23660046138a9565b612a9e565b348015610bf357600080fd5b506104d2610c023660046138a9565b612b89565b348015610c1357600080fd5b5061044a610c223660046138a9565b612c07565b606060038054610c3690614199565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6290614199565b8015610caf5780601f10610c8457610100808354040283529160200191610caf565b820191906000526020600020905b815481529060010190602001808311610c9257829003601f168201915b5050505050905090565b6005546001600160a01b03163314610cec5760405162461bcd60e51b8152600401610ce390613f95565b60405180910390fd5b6014819055601654601554610d0d9190610d07908490612c53565b90612c53565b60175550565b6000610d20338484612cb2565b5060015b92915050565b6005546001600160a01b03163314610d545760405162461bcd60e51b8152600401610ce390613f95565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b60038251118015610d88575060208251105b610dd45760405162461bcd60e51b815260206004820181905260248201527f4e4f4445204352454154494f4e3a204e414d452053495a4520494e56414c49446044820152606401610ce3565b3380610e395760405162461bcd60e51b815260206004820152602e60248201527f4e4f4445204352454154494f4e3a20206372656174696f6e2066726f6d20746860448201526d65207a65726f206164647265737360901b6064820152608401610ce3565b6001600160a01b0381166000908152601c602052604090205460ff1615610ead5760405162461bcd60e51b815260206004820152602260248201527f4e4f4445204352454154494f4e3a20426c61636b6c6973746564206164647265604482015261737360f01b6064820152608401610ce3565b6010546001600160a01b03828116911614801590610ed957506011546001600160a01b03828116911614155b610f4b5760405162461bcd60e51b815260206004820152603760248201527f4e4f4445204352454154494f4e3a20667574757220616e64207265776172647360448201527f506f6f6c2063616e6e6f7420637265617465206e6f64650000000000000000006064820152608401610ce3565b600d60009054906101000a90046001600160a01b03166001600160a01b031663f90f0eaa6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f9957600080fd5b505afa158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd19190613cb2565b610fda82612b89565b106110275760405162461bcd60e51b815260206004820152601f60248201527f437265617465206e6f64653a2052656163686564206e6f6465206c696d6974006044820152606401610ce3565b600d54604051630e17257d60e21b815260ff841660048201526000916001600160a01b03169063385c95f49060240160206040518083038186803b15801561106e57600080fd5b505afa158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a69190613cb2565b9050600081116110f85760405162461bcd60e51b815260206004820152601e60248201527f437265617465204e6f64653a20496e76616c6964206e6f6465207469657200006044820152606401610ce3565b80611118836001600160a01b031660009081526020819052604090205490565b101561117b5760405162461bcd60e51b815260206004820152602c60248201527f4e4f4445204352454154494f4e3a2042616c616e636520746f6f206c6f77206660448201526b37b91031b932b0ba34b7b71760a11b6064820152608401610ce3565b6012546001600160a01b0316600090815260208190526040902054601b54811080159081906111b15750601a54610100900460ff165b80156111c05750601a5460ff16155b80156111da57506005546001600160a01b03858116911614155b80156111ff57506001600160a01b0384166000908152601d602052604090205460ff16155b1561131b57601a805460ff1916600117905560165460009061122f90606490611229908690612dd7565b90612e56565b601054909150611248906001600160a01b031682612e98565b6000611264606461122960145487612dd790919063ffffffff16565b90506000611282606461122960195485612dd790919063ffffffff16565b60115490915061129b906001600160a01b031682612e98565b6012546011546112c1916001600160a01b0390811691166112bc8585612eee565b612f30565b60006112dd606461122960155489612dd790919063ffffffff16565b90506112e881613039565b6012546001600160a01b031660009081526020819052604090205461130c906130c0565b5050601a805460ff1916905550505b611326843085612f30565b600d5460405163c75956d160e01b81526001600160a01b039091169063c75956d19061135a9087908a908a90600401613d41565b600060405180830381600087803b15801561137457600080fd5b505af1158015611388573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0381166000908152600860205260409020546113c95760405162461bcd60e51b8152600401610ce390613f04565b60006113d460075490565b6113de90476140fd565b9050600061140b8383611406866001600160a01b031660009081526009602052604090205490565b61322e565b90508061142a5760405162461bcd60e51b8152600401610ce390613f4a565b6001600160a01b038316600090815260096020526040812080548392906114529084906140fd565b92505081905550806007600082825461146b91906140fd565b9091555061147b90508382613274565b604080516001600160a01b0385168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505050565b60006114cf84848461338d565b611521843361151c85604051806060016040528060288152602001614272602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190613468565b612cb2565b5060015b9392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610d2091859061151c9086612c53565b6005546001600160a01b0316331461158c5760405162461bcd60e51b8152600401610ce390613f95565b478111156115975750475b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156115d1573d6000803e3d6000fd5b5050565b6005546001600160a01b031633146115ff5760405162461bcd60e51b8152600401610ce390613f95565b6015819055601654601454610d0d9190610d079084612c53565b6060336116385760405162461bcd60e51b8152600401610ce390613ed6565b600d546001600160a01b03166315f7aaab336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561168957600080fd5b505afa15801561169d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c19190613bf7565b6116dd5760405162461bcd60e51b8152600401610ce390613eaf565b600d546001600160a01b03166389fef769336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261176a91908101906139b7565b905090565b6001600160a01b0381166000908152600860205260409020546117a45760405162461bcd60e51b8152600401610ce390613f04565b6001600160a01b0382166000908152600b60205260408120546040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b1580156117fc57600080fd5b505afa158015611810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118349190613cb2565b61183e91906140fd565b90506000611877838361140687876001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b9050806118965760405162461bcd60e51b8152600401610ce390613f4a565b6001600160a01b038085166000908152600c60209081526040808320938716835292905290812080548392906118cd9084906140fd565b90915550506001600160a01b0384166000908152600b6020526040812080548392906118fa9084906140fd565b9091555061190b90508484836134a2565b604080516001600160a01b038581168252602082018490528616917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a250505050565b600d54604080516345193f5560e11b815290516000926001600160a01b031691638a327eaa916004808301926020929190829003018186803b15801561199c57600080fd5b505afa1580156119b0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176a9190613cb2565b6060336119f35760405162461bcd60e51b8152600401610ce390613ed6565b600d546001600160a01b03166315f7aaab336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611a4457600080fd5b505afa158015611a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7c9190613bf7565b611a985760405162461bcd60e51b8152600401610ce390613eaf565b600d546001600160a01b031663d100c451335b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b158015611aea57600080fd5b505afa158015611afe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261176a9190810190613aad565b3380611b885760405162461bcd60e51b815260206004820152602b60248201527f4d414e494120435348543a20206372656174696f6e2066726f6d20746865207a60448201526a65726f206164647265737360a81b6064820152608401610ce3565b6001600160a01b0381166000908152601c602052604090205460ff1615611bf15760405162461bcd60e51b815260206004820152601f60248201527f4d414e494120435348543a20426c61636b6c69737465642061646472657373006044820152606401610ce3565b6010546001600160a01b03828116911614801590611c1d57506011546001600160a01b03828116911614155b611c8f5760405162461bcd60e51b815260206004820152603860248201527f4d414e494120435348543a20667574757220616e642072657761726473506f6f60448201527f6c2063616e6e6f7420636173686f7574207265776172647300000000000000006064820152608401610ce3565b600d546040516330cd31af60e11b81526001600160a01b038381166004830152600092169063619a635e9060240160206040518083038186803b158015611cd557600080fd5b505afa158015611ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0d9190613cb2565b905060008111611d7c5760405162461bcd60e51b815260206004820152603460248201527f4d414e494120435348543a20596f7520646f6e2774206861766520656e6f75676044820152731a081c995dd85c99081d1bc818d85cda081bdd5d60621b6064820152608401610ce3565b601a54610100900460ff1615611e0657600080601854118015611dc057506012546001600160a01b0316600090815260208190526040902054662386f26fc1000011155b15611df857611ddf606461122960185485612dd790919063ffffffff16565b601054909150611df8906001600160a01b031682612e98565b611e028183614156565b9150505b601154611e1d906001600160a01b03168383612f30565b600d5460405163170a62c760e21b81526001600160a01b03848116600483015290911690635c298b1c90602401602060405180830381600087803b158015611e6457600080fd5b505af1158015611e78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9c9190613cb2565b505050565b6005546001600160a01b03163314611ecb5760405162461bcd60e51b8152600401610ce390613f95565b601a80549115156101000261ff0019909216919091179055565b6005546001600160a01b03163314611f0f5760405162461bcd60e51b8152600401610ce390613f95565b600e546001600160a01b0382811691161415611f7e5760405162461bcd60e51b815260206004820152602860248201527f544b4e3a2054686520726f7574657220616c7265616479206861732074686174604482015267206164647265737360c01b6064820152608401610ce3565b600e546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3600e80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b815290516000929163c45a0155916004808301926020929190829003018186803b15801561201057600080fd5b505afa158015612024573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204891906138c6565b601254600e54604080516339d94ae160e11b815290516001600160a01b039485169463c9c653969481169316916373b295c2916004808301926020929190829003018186803b15801561209a57600080fd5b505afa1580156120ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d291906138c6565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561211a57600080fd5b505af115801561212e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215291906138c6565b600f80546001600160a01b0319166001600160a01b03929092169190911790555050565b33806121d25760405162461bcd60e51b815260206004820152602560248201527f435348543a20206372656174696f6e2066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ce3565b6001600160a01b0381166000908152601c602052604090205460ff161561223b5760405162461bcd60e51b815260206004820152601f60248201527f4d414e494120435348543a20426c61636b6c69737465642061646472657373006044820152606401610ce3565b6010546001600160a01b0382811691161480159061226757506011546001600160a01b03828116911614155b6122ce5760405162461bcd60e51b815260206004820152603260248201527f435348543a20667574757220616e642072657761726473506f6f6c2063616e6e6044820152716f7420636173686f7574207265776172647360701b6064820152608401610ce3565b600d546040516329b8573160e21b81526001600160a01b03838116600483015260248201859052600092169063a6e15cc49060440160206040518083038186803b15801561231b57600080fd5b505afa15801561232f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123539190613cb2565b9050600081116123bc5760405162461bcd60e51b815260206004820152602e60248201527f435348543a20596f7520646f6e2774206861766520656e6f756768207265776160448201526d1c99081d1bc818d85cda081bdd5d60921b6064820152608401610ce3565b601a54610100900460ff16156124465760008060185411801561240057506012546001600160a01b0316600090815260208190526040902054662386f26fc1000011155b156124385761241f606461122960185485612dd790919063ffffffff16565b601054909150612438906001600160a01b031682612e98565b6124428183614156565b9150505b60115461245d906001600160a01b03168383612f30565b600d5460405163376db80160e11b81526001600160a01b0384811660048301526024820186905290911690636edb700290604401602060405180830381600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e39190613cb2565b50505050565b6005546001600160a01b031633146125135760405162461bcd60e51b8152600401610ce390613f95565b601b55565b6005546001600160a01b031633146125425760405162461bcd60e51b8152600401610ce390613f95565b601855565b6005546001600160a01b031633146125715760405162461bcd60e51b8152600401610ce390613f95565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146125e55760405162461bcd60e51b8152600401610ce390613f95565b6016819055601554601454610d0d918391610d0791612c53565b6000600a8281548110612614576126146141ea565b6000918252602090912001546001600160a01b031692915050565b6005546001600160a01b031633146126595760405162461bcd60e51b8152600401610ce390613f95565b601955565b6005546001600160a01b031633146126885760405162461bcd60e51b8152600401610ce390613f95565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b606060048054610c3690614199565b6005546001600160a01b031633146126e35760405162461bcd60e51b8152600401610ce390613f95565b600f546001600160a01b03838116911614156127725760405162461bcd60e51b815260206004820152604260248201527f544b4e3a20546865204a6f6520706169722063616e6e6f742062652072656d6f60448201527f7665642066726f6d206175746f6d617465644d61726b65744d616b6572506169606482015261727360f01b608482015260a401610ce3565b6115d182826134f4565b600d546040805163b8527aef60e01b815290516000926001600160a01b03169163b8527aef916004808301926020929190829003018186803b15801561199c57600080fd5b6000610d20338461151c8560405180606001604052806025815260200161429a602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190613468565b6000610d2033848461338d565b60603361283c5760405162461bcd60e51b8152600401610ce390613ed6565b600d546001600160a01b03166315f7aaab336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561288d57600080fd5b505afa1580156128a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c59190613bf7565b6128e15760405162461bcd60e51b8152600401610ce390613eaf565b600d546001600160a01b031663519f6a4d33611aab565b6060336129175760405162461bcd60e51b8152600401610ce390613ed6565b600d546001600160a01b03166315f7aaab336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296857600080fd5b505afa15801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a09190613bf7565b6129bc5760405162461bcd60e51b8152600401610ce390613eaf565b600d546001600160a01b0316639f4d248e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b158015612a0d57600080fd5b505afa158015612a21573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261176a9190810190613b45565b6005546001600160a01b03163314612a735760405162461bcd60e51b8152600401610ce390613f95565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314612ac85760405162461bcd60e51b8152600401610ce390613f95565b6001600160a01b038116612b2d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ce3565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600d5460405163112469f960e21b81526001600160a01b0383811660048301526000921690634491a7e49060240160206040518083038186803b158015612bcf57600080fd5b505afa158015612be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d249190613cb2565b6005546001600160a01b03163314612c315760405162461bcd60e51b8152600401610ce390613f95565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600080612c6083856140fd565b9050838110156115255760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ce3565b6001600160a01b038316612d145760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ce3565b6001600160a01b038216612d755760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ce3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600082612de657506000610d24565b6000612df28385614137565b905082612dff8583614115565b146115255760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ce3565b600061152583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506135dd565b47612ea2826130c0565b6000612eae4783612eee565b6040519091506001600160a01b0385169082156108fc029083906000818181858888f19350505050158015612ee7573d6000803e3d6000fd5b5050505050565b600061152583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613468565b6001600160a01b038316612f565760405162461bcd60e51b8152600401610ce390613fca565b6001600160a01b038216612f7c5760405162461bcd60e51b8152600401610ce390613e6c565b612fb98160405180606001604052806026815260200161424c602691396001600160a01b0386166000908152602081905260409020549190613468565b6001600160a01b038085166000908152602081905260408082209390935590841681522054612fe89082612c53565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612dca565b6000613046826002612e56565b905060006130548383612eee565b905047613060836130c0565b600061306c4783612eee565b9050613078838261360b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106130f5576130f56141ea565b6001600160a01b03928316602091820292909201810191909152600e54604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b15801561314957600080fd5b505afa15801561315d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318191906138c6565b81600181518110613194576131946141ea565b6001600160a01b039283166020918202929092010152601254600e546131bf92918216911684612cb2565b600e54604051633b158ab160e11b81526001600160a01b039091169063762b1562906131f890859060009086903090429060040161400f565b600060405180830381600087803b15801561321257600080fd5b505af1158015613226573d6000803e3d6000fd5b505050505050565b6006546001600160a01b038416600090815260086020526040812054909183916132589086614137565b6132629190614115565b61326c9190614156565b949350505050565b804710156132c45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610ce3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613311576040519150601f19603f3d011682016040523d82523d6000602084013e613316565b606091505b5050905080611e9c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610ce3565b6001600160a01b0383166133b35760405162461bcd60e51b8152600401610ce390613fca565b6001600160a01b0382166133d95760405162461bcd60e51b8152600401610ce390613e6c565b6001600160a01b0383166000908152601c602052604090205460ff1615801561341b57506001600160a01b0382166000908152601c602052604090205460ff16155b61345d5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610ce3565b611e9c838383612f30565b6000818484111561348c5760405162461bcd60e51b8152600401610ce39190613e59565b5060006134998486614156565b95945050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611e9c9084906136cc565b6001600160a01b0382166000908152601d602052604090205460ff16151581151514156135895760405162461bcd60e51b815260206004820152603d60248201527f544b4e3a204175746f6d61746564206d61726b6574206d616b6572207061697260448201527f20697320616c72656164792073657420746f20746861742076616c75650000006064820152608401610ce3565b6001600160a01b0382166000818152601d6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600081836135fe5760405162461bcd60e51b8152600401610ce39190613e59565b5060006134998486614115565b601254600e54613628916001600160a01b03908116911684612cb2565b600e54601254604051637c8d9fb960e11b81526001600160a01b0391821660048201526024810185905260006044820181905260648201523060848201524260a482015291169063f91b3f7290839060c4016060604051808303818588803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ee79190613ccb565b6000613721826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661379e9092919063ffffffff16565b805190915015611e9c578080602001905181019061373f9190613bf7565b611e9c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ce3565b606061326c848460008585843b6137f75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ce3565b600080866001600160a01b031685876040516138139190613d25565b60006040518083038185875af1925050503d8060008114613850576040519150601f19603f3d011682016040523d82523d6000602084013e613855565b606091505b5091509150613865828286613870565b979650505050505050565b6060831561387f575081611525565b82511561388f5782518084602001fd5b8160405162461bcd60e51b8152600401610ce39190613e59565b6000602082840312156138bb57600080fd5b813561152581614216565b6000602082840312156138d857600080fd5b815161152581614216565b600080604083850312156138f657600080fd5b823561390181614216565b9150602083013561391181614216565b809150509250929050565b60008060006060848603121561393157600080fd5b833561393c81614216565b9250602084013561394c81614216565b929592945050506040919091013590565b6000806040838503121561397057600080fd5b823561397b81614216565b915060208301356139118161422e565b6000806040838503121561399e57600080fd5b82356139a981614216565b946020939093013593505050565b600060208083850312156139ca57600080fd5b825167ffffffffffffffff808211156139e257600080fd5b818501915085601f8301126139f657600080fd5b8151613a09613a04826140b1565b614080565b80828252858201915085850189878560051b8801011115613a2957600080fd5b60005b84811015613a9e57815186811115613a4357600080fd5b8701603f81018c13613a5457600080fd5b888101516040613a66613a04836140d5565b8281528e82848601011115613a7a57600080fd5b613a89838d830184870161416d565b87525050509287019290870190600101613a2c565b50909998505050505050505050565b60006020808385031215613ac057600080fd5b825167ffffffffffffffff811115613ad757600080fd5b8301601f81018513613ae857600080fd5b8051613af6613a04826140b1565b80828252848201915084840188868560051b8701011115613b1657600080fd5b600094505b83851015613b39578051835260019490940193918501918501613b1b565b50979650505050505050565b60006020808385031215613b5857600080fd5b825167ffffffffffffffff811115613b6f57600080fd5b8301601f81018513613b8057600080fd5b8051613b8e613a04826140b1565b80828252848201915084840188868560051b8701011115613bae57600080fd5b600094505b83851015613b39578051613bc68161423c565b835260019490940193918501918501613bb3565b600060208284031215613bec57600080fd5b81356115258161422e565b600060208284031215613c0957600080fd5b81516115258161422e565b60008060408385031215613c2757600080fd5b823567ffffffffffffffff811115613c3e57600080fd5b8301601f81018513613c4f57600080fd5b8035613c5d613a04826140d5565b818152866020838501011115613c7257600080fd5b8160208401602083013760006020838301015280945050505060208301356139118161423c565b600060208284031215613cab57600080fd5b5035919050565b600060208284031215613cc457600080fd5b5051919050565b600080600060608486031215613ce057600080fd5b8351925060208401519150604084015190509250925092565b60008151808452613d1181602086016020860161416d565b601f01601f19169290920160200192915050565b60008251613d3781846020870161416d565b9190910192915050565b6001600160a01b0384168152606060208201819052600090613d6590830185613cf9565b905060ff83166040830152949350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613dcd57603f19888603018452613dbb858351613cf9565b94509285019290850190600101613d9f565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613e1257835183529284019291840191600101613df6565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613e1257835160ff1683529284019291840191600101613e3a565b6020815260006115256020830184613cf9565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252600d908201526c2727902727a2229027aba722a960991b604082015260600190565b60208082526014908201527353454e4445522043414e2754204245205a45524f60601b604082015260600190565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561405f5784516001600160a01b03168352938301939183019160010161403a565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156140a9576140a9614200565b604052919050565b600067ffffffffffffffff8211156140cb576140cb614200565b5060051b60200190565b600067ffffffffffffffff8211156140ef576140ef614200565b50601f01601f191660200190565b60008219821115614110576141106141d4565b500190565b60008261413257634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615614151576141516141d4565b500290565b600082821015614168576141686141d4565b500390565b60005b83811015614188578181015183820152602001614170565b838111156124e35750506000910152565b600181811c908216806141ad57607f821691505b602082108114156141ce57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461422b57600080fd5b50565b801515811461422b57600080fd5b60ff8116811461422b57600080fdfe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cc5ecaafc187a58c533825df8bf76f5cfaaa55eedffb114ae2cfbe2d54902bb064736f6c63430008070033000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000000000000000000000000001a055690d9db800000000000000000000000000004c7edcc43424f474c2b37680565c1163f94c66fc000000000000000000000000d865619f930c8c35ce8c51395cae688a890e9504000000000000000000000000cfdb372a2dd2b2bf2ff60d85f363c041c0eb1fa50000000000000000000000000000000000000000000000000000000000000004000000000000000000000000f91a2e85e388bb19ec3b7189ed26bb7cc49404ea000000000000000000000000187d7f8cb99c6a8f6a89b84b8e0a47582980015a000000000000000000000000bec9776194170e947701b8e77259af57d073834f000000000000000000000000bc0e9d8d37d0c4f96ca3ef17f50f6d47af2ef5c3000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000001900000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000008000000000000000000000000f91a2e85e388bb19ec3b7189ed26bb7cc49404ea000000000000000000000000187d7f8cb99c6a8f6a89b84b8e0a47582980015a000000000000000000000000bec9776194170e947701b8e77259af57d073834f000000000000000000000000bc0e9d8d37d0c4f96ca3ef17f50f6d47af2ef5c3000000000000000000000000bec9776194170e947701b8e77259af57d073834f000000000000000000000000bec9776194170e947701b8e77259af57d073834f000000000000000000000000bc0e9d8d37d0c4f96ca3ef17f50f6d47af2ef5c3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000035b600000000000000000000000000000000000000000000000000000000000035b600000000000000000000000000000000000000000000000000000000000035b600000000000000000000000000000000000000000000000000000000000035b60000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000128e2e700000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e