60e0604052600760a090815266506c616e69746160c81b60c052600290620000289082620005bd565b506040805180820190915260048152631413105560e21b6020820152600390620000539082620005bd565b50600480546001600160a81b03191674658d132c65c71f38219f031d3c3f9d7c3c47f82c0917905561dead6080526000600b8190556016600c819055600d829055600e829055600f81905560108290556011829055600a60128190556013929092556014819055601581905555670de0b6b3a764000060178190556018819055606490620000e390600262000689565b620000ef9190620006b5565b601955612710601754620001049190620006b5565b601a55601c805462ffffff60a81b1916600160b81b1790553480156200012957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620006d8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000237573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025d9190620006d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d19190620006d8565b601c80546001600160a01b039283166001600160a01b031991821617909155601b8054928416929091168217905560175430600090815260066020908152604080832094835293905291822055600190600790620003376000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556004546101009004909116815260079092528120805490921660019081179092556008906200039c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556004546101009004821681526008909352818320805485166001908117909155601c549091168352818320805485168217905530835290822080549093168117909255600990620004236000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600454610100900482168152600984528281208054861660019081179091553082528382208054871682179055601c549092168152600a90935290822080549093161790915560175490600590620004a63390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6017546040516200050991815260200190565b60405180910390a3506200070a565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200054357607f821691505b6020821081036200056457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005b857600081815260208120601f850160051c81016020861015620005935750805b601f850160051c820191505b81811015620005b4578281556001016200059f565b5050505b505050565b81516001600160401b03811115620005d957620005d962000518565b620005f181620005ea84546200052e565b846200056a565b602080601f831160018114620006295760008415620006105750858301515b600019600386901b1c1916600185901b178555620005b4565b600085815260208120601f198616915b828110156200065a5788860151825594840194600190910190840162000639565b5085821015620006795787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620006af57634e487b7160e01b600052601160045260246000fd5b92915050565b600082620006d357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006eb57600080fd5b81516001600160a01b03811681146200070357600080fd5b9392505050565b608051611efa6200072d6000396000818161038001526109280152611efa6000f3fe60806040526004361061021e5760003560e01c80638b4cee0811610123578063c2d4640e116100ab578063e207a92b1161006f578063e207a92b146106bd578063f1d5f517146106dd578063f2fde38b146106fd578063f42938901461071d578063fabf70631461073257600080fd5b8063c2d4640e146105e7578063c49b9a8014610607578063c78a789b14610627578063c816841b14610657578063dd62ed3e1461067757600080fd5b806394690ab8116100f257806394690ab81461055257806395d89b4114610572578063a457c2d714610587578063a5d69d1f146105a7578063a9059cbb146105c757600080fd5b80638b4cee08146104df5780638da5cb5b146104ff5780638f03aad51461051d578063914eb66a1461053d57600080fd5b80632b112e49116101a65780633b97084a116101755780633b97084a1461041957806355324fa914610439578063667b511c1461046957806370a08231146104895780637d96f3f6146104bf57600080fd5b80632b112e49146103a25780632cdae5cb146103b7578063313ce567146103d757806339509351146103f957600080fd5b80631694505e116101ed5780631694505e146102d757806318160ddd1461030f57806323b872dd1461032e5780632563ae831461034e57806327c8f8351461036e57600080fd5b806306fdde031461022a578063095ea7b31461025557806309c1a2fb146102855780630cc835a3146102b557600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f610762565b60405161024c9190611aef565b60405180910390f35b34801561026157600080fd5b50610275610270366004611b52565b6107f4565b604051901515815260200161024c565b34801561029157600080fd5b506102756102a0366004611b7e565b60086020526000908152604090205460ff1681565b3480156102c157600080fd5b506102d56102d0366004611b9b565b61080b565b005b3480156102e357600080fd5b50601b546102f7906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b34801561031b57600080fd5b506017545b60405190815260200161024c565b34801561033a57600080fd5b50610275610349366004611bb4565b610873565b34801561035a57600080fd5b506102d5610369366004611c0a565b6108de565b34801561037a57600080fd5b506102f77f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ae57600080fd5b50610320610926565b3480156103c357600080fd5b506102d56103d2366004611c25565b610970565b3480156103e357600080fd5b5060045460405160ff909116815260200161024c565b34801561040557600080fd5b50610275610414366004611b52565b6109c5565b34801561042557600080fd5b506102d5610434366004611b9b565b6109fb565b34801561044557600080fd5b50610275610454366004611b7e565b600a6020526000908152604090205460ff1681565b34801561047557600080fd5b506102d5610484366004611c25565b610a2a565b34801561049557600080fd5b506103206104a4366004611b7e565b6001600160a01b031660009081526005602052604090205490565b3480156104cb57600080fd5b506102d56104da366004611b7e565b610a7f565b3480156104eb57600080fd5b506102d56104fa366004611b9b565b610ad1565b34801561050b57600080fd5b506000546001600160a01b03166102f7565b34801561052957600080fd5b506102d5610538366004611b9b565b610b27565b34801561054957600080fd5b506102d5610bc5565b34801561055e57600080fd5b506102d561056d366004611c25565b610c39565b34801561057e57600080fd5b5061023f610c8e565b34801561059357600080fd5b506102756105a2366004611b52565b610c9d565b3480156105b357600080fd5b506102d56105c2366004611c0a565b610cec565b3480156105d357600080fd5b506102756105e2366004611b52565b610d34565b3480156105f357600080fd5b506102d5610602366004611c5a565b610d41565b34801561061357600080fd5b506102d5610622366004611c0a565b610d90565b34801561063357600080fd5b50610275610642366004611b7e565b60096020526000908152604090205460ff1681565b34801561066357600080fd5b50601c546102f7906001600160a01b031681565b34801561068357600080fd5b50610320610692366004611c86565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156106c957600080fd5b506102d56106d8366004611b7e565b610e12565b3480156106e957600080fd5b506102d56106f8366004611b9b565b610e60565b34801561070957600080fd5b506102d5610718366004611b7e565b610e8f565b34801561072957600080fd5b506102d5610f79565b34801561073e57600080fd5b5061027561074d366004611b7e565b60076020526000908152604090205460ff1681565b60606002805461077190611cbf565b80601f016020809104026020016040519081016040528092919081815260200182805461079d90611cbf565b80156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b5050505050905090565b6000610801338484610f96565b5060015b92915050565b6000546001600160a01b0316331461083e5760405162461bcd60e51b815260040161083590611cf9565b60405180910390fd5b600c819055600d54600b5461085e919061085890846110ba565b906110ba565b6014819055600a101561087057600080fd5b50565b6000610880848484611119565b506108d384336108ce85604051806060016040528060288152602001611e78602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611579565b610f96565b5060015b9392505050565b6000546001600160a01b031633146109085760405162461bcd60e51b815260040161083590611cf9565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660009081526005602052604081205460175461096b916115b3565b905090565b6000546001600160a01b0316331461099a5760405162461bcd60e51b815260040161083590611cf9565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916108019185906108ce90866110ba565b6000546001600160a01b03163314610a255760405162461bcd60e51b815260040161083590611cf9565b601a55565b6000546001600160a01b03163314610a545760405162461bcd60e51b815260040161083590611cf9565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610aa95760405162461bcd60e51b815260040161083590611cf9565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b03163314610afb5760405162461bcd60e51b815260040161083590611cf9565b600f819055601054600e54610b15919061085890846110ba565b60158190556014101561087057600080fd5b6000546001600160a01b03163314610b515760405162461bcd60e51b815260040161083590611cf9565b6064601754610b609190611d44565b811015610bc05760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b6064820152608401610835565b601855565b6000546001600160a01b03163314610bef5760405162461bcd60e51b815260040161083590611cf9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610c635760405162461bcd60e51b815260040161083590611cf9565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b60606003805461077190611cbf565b600061080133846108ce85604051806060016040528060258152602001611ea0602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190611579565b6000546001600160a01b03163314610d165760405162461bcd60e51b815260040161083590611cf9565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b60006108d3338484611119565b6000546001600160a01b03163314610d6b5760405162461bcd60e51b815260040161083590611cf9565b601183905560128290556013819055610d888161085885856110ba565b601655505050565b6000546001600160a01b03163314610dba5760405162461bcd60e51b815260040161083590611cf9565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610e0790831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610e3c5760405162461bcd60e51b815260040161083590611cf9565b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b6000546001600160a01b03163314610e8a5760405162461bcd60e51b815260040161083590611cf9565b601955565b6000546001600160a01b03163314610eb95760405162461bcd60e51b815260040161083590611cf9565b6001600160a01b038116610f1e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610835565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600454610f949061010090046001600160a01b0316476115f5565b565b6001600160a01b038316610ff85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610835565b6001600160a01b0382166110595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610835565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806110c78385611d66565b9050838110156108d75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610835565b60006001600160a01b03841661117f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610835565b6001600160a01b0383166111e15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610835565b601c54600160a01b900460ff1615611205576111fe848484611630565b90506108d7565b6001600160a01b03841660009081526009602052604090205460ff1615801561124757506001600160a01b03831660009081526009602052604090205460ff16155b156112af576018548211156112af5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610835565b30600090815260056020526040902054601a54811080159081906112dd5750601c54600160a01b900460ff16155b801561130257506001600160a01b03861660009081526007602052604090205460ff16155b801561132657506001600160a01b0385166000908152600a602052604090205460ff165b801561133b5750601c54600160a81b900460ff165b80156113485750601a5484115b1561136e57601c54600160b01b900460ff161561136557601a5491505b61136e82611716565b60008061137c888888611760565b91509150600086821461138f5730611391565b885b90508115611419576001600160a01b0381166000908152600560205260409020546113bc90836110ba565b6001600160a01b0380831660008181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114109086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c1660009081526005909152919091205461146b918990611579565b6001600160a01b038a16600090815260056020526040902055601c54600160b81b900460ff1680156114b657506001600160a01b03881660009081526008602052604090205460ff16155b156114ec576019546114e1846108588b6001600160a01b031660009081526005602052604090205490565b11156114ec57600080fd5b6001600160a01b03881660009081526005602052604090205461150f90846110ba565b6001600160a01b03808a1660008181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115639087815260200190565b60405180910390a36001955050505050506108d7565b6000818484111561159d5760405162461bcd60e51b81526004016108359190611aef565b5060006115aa8486611d79565b95945050505050565b60006108d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611579565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561162b573d6000803e3d6000fd5b505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611681918490611579565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546116b090836110ba565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117049086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556117328161186f565b600454479061174f9061010090046001600160a01b0316826115f5565b5050601c805460ff60a01b19169055565b6001600160a01b0383166000908152600760205260408120548190839060ff1680156117955750601c54600160a81b900460ff165b156117a4578392509050611867565b6001600160a01b0386166000908152600a602052604090205460ff16156117ec576117e560646117df60145487611a0290919063ffffffff16565b90611a84565b905061182a565b6001600160a01b0385166000908152600a602052604090205460ff161561182a5761182760646117df60155487611a0290919063ffffffff16565b90505b6001600160a01b03861660009081526007602052604090205460ff1615611858578360009250925050611867565b61186284826115b3565b925090505b935093915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118a4576118a4611d8c565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119219190611da2565b8160018151811061193457611934611d8c565b6001600160a01b039283166020918202929092010152601b5461195a9130911684610f96565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611993908590600090869030904290600401611e03565b600060405180830381600087803b1580156119ad57600080fd5b505af11580156119c1573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516119f6929190611e3f565b60405180910390a15050565b600082600003611a1457506000610805565b6000611a208385611e60565b905082611a2d8583611d44565b146108d75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610835565b60006108d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611ae25760405162461bcd60e51b81526004016108359190611aef565b5060006115aa8486611d44565b600060208083528351808285015260005b81811015611b1c57858101830151858201604001528201611b00565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461087057600080fd5b60008060408385031215611b6557600080fd5b8235611b7081611b3d565b946020939093013593505050565b600060208284031215611b9057600080fd5b81356108d781611b3d565b600060208284031215611bad57600080fd5b5035919050565b600080600060608486031215611bc957600080fd5b8335611bd481611b3d565b92506020840135611be481611b3d565b929592945050506040919091013590565b80358015158114611c0557600080fd5b919050565b600060208284031215611c1c57600080fd5b6108d782611bf5565b60008060408385031215611c3857600080fd5b8235611c4381611b3d565b9150611c5160208401611bf5565b90509250929050565b600080600060608486031215611c6f57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611c9957600080fd5b8235611ca481611b3d565b91506020830135611cb481611b3d565b809150509250929050565b600181811c90821680611cd357607f821691505b602082108103611cf357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611d6157634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561080557610805611d2e565b8181038181111561080557610805611d2e565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611db457600080fd5b81516108d781611b3d565b600081518084526020808501945080840160005b83811015611df85781516001600160a01b031687529582019590820190600101611dd3565b509495945050505050565b85815284602082015260a060408201526000611e2260a0830186611dbf565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611e586040830184611dbf565b949350505050565b808202811582820484141761080557610805611d2e56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205e2261094a0d4494b7712afac45c31b8f5c498f297d021094d2ce47a1f5c06bb64736f6c63430008130033