60806040526009805460ff191690556200001b436002620006a5565b600a556000600c556001600d55600e80546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217909155600f8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790553480156200007d57600080fd5b506040518060400160405280601081526020016f4c69676874206f662046726565646f6d60801b81525060405180604001604052806005815260200164131251d21560da1b81525033694a1d89bb94865ec0000083836000620000e5620002a260201b60201c565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f54601180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b69190620006c7565b600e546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000208573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022e9190620006c7565b601080546001600160a01b0319166001600160a01b0392909216919091179055815162000263906013906020850190620005e9565b50805162000279906014906020840190620005e9565b5050506200028e8282620002a660201b60201c565b62000298620003c8565b5050505062000782565b3390565b6001600160a01b038216620003025760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060156000828254620003169190620006f9565b90915550506001600160a01b0382166000908152600260205260408120805483929062000345908490620006f9565b9091555050600f5462000382906001600160a01b03167fdd15fe86affad91249ef0eb713f39ebeaa987b6e6fd2a0000000000000000000620004a9565b506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600f54600580546001600160a01b039283166001600160a01b03199182161790915560068054339083161790556010546007805491909316911617905560005b6003811015620004a657600160036000600584600381106200042e576200042e62000714565b01546001600160a01b0316815260208101919091526040016000908120805460ff1916921515929092179091556008826003811062000471576200047162000714565b602091828204019190066101000a81548160ff02191690831515021790555080806200049d906200072a565b91505062000408565b50565b6000620004b8338484620004c1565b50600192915050565b6001600160a01b038316620005255760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620002f9565b6001600160a01b038216620005885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620002f9565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b828054620005f79062000746565b90600052602060002090601f0160209004810192826200061b576000855562000666565b82601f106200063657805160ff191683800117855562000666565b8280016001018555821562000666579182015b828111156200066657825182559160200191906001019062000649565b506200067492915062000678565b5090565b5b8082111562000674576000815560010162000679565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620006c257620006c26200068f565b500290565b600060208284031215620006da57600080fd5b81516001600160a01b0381168114620006f257600080fd5b9392505050565b600082198211156200070f576200070f6200068f565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600182016200073f576200073f6200068f565b5060010190565b600181811c908216806200075b57607f821691505b6020821081036200077c57634e487b7160e01b600052602260045260246000fd5b50919050565b6110bb80620007926000396000f3fe6080604052600436106100c65760003560e01c8063715018a61161007f578063a8aa1b3111610059578063a8aa1b31146102fe578063a9059cbb1461031e578063c9567bf91461033e578063dd62ed3e1461035357600080fd5b8063715018a6146102a05780638da5cb5b146102b757806395d89b41146102e957600080fd5b806306fdde03146101b4578063095ea7b3146101df57806318160ddd1461020f57806323b872dd1461022e578063313ce5671461024e57806370a082311461026a57600080fd5b366101af576005600101546001600160a01b031633146100e557600080fd5b6007546001600160a01b031660009081526002602052604081208054633b9aca009290610113908490610e96565b90915550506007546040805160016209351760e01b0319815290516001600160a01b039092169163fff6cae99160048082019260009290919082900301818387803b15801561016157600080fd5b505af1158015610175573d6000803e3d6000fd5b505050506001600860026003811061018f5761018f610e6a565b602091828204019190066101000a81548160ff0219169083151502179055005b600080fd5b3480156101c057600080fd5b506101c9610399565b6040516101d69190610eb8565b60405180910390f35b3480156101eb57600080fd5b506101ff6101fa366004610f29565b61042b565b60405190151581526020016101d6565b34801561021b57600080fd5b506015545b6040519081526020016101d6565b34801561023a57600080fd5b506101ff610249366004610f53565b610441565b34801561025a57600080fd5b50604051601281526020016101d6565b34801561027657600080fd5b50610220610285366004610f8f565b6001600160a01b031660009081526002602052604090205490565b3480156102ac57600080fd5b506102b56104f7565b005b3480156102c357600080fd5b506001546001600160a01b03165b6040516001600160a01b0390911681526020016101d6565b3480156102f557600080fd5b506101c961059b565b34801561030a57600080fd5b506010546102d1906001600160a01b031681565b34801561032a57600080fd5b506101ff610339366004610f29565b6105aa565b34801561034a57600080fd5b506101ff6105b7565b34801561035f57600080fd5b5061022061036e366004610fb1565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b6060601380546103a890610fe4565b80601f01602080910402602001604051908101604052809291908181526020018280546103d490610fe4565b80156104215780601f106103f657610100808354040283529160200191610421565b820191906000526020600020905b81548152906001019060200180831161040457829003601f168201915b5050505050905090565b6000610438338484610631565b50600192915050565b600061044e848484610755565b6001600160a01b0384166000908152601260209081526040808320338452909152902054828110156104d85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104ec85336104e7868561101e565b610631565b506001949350505050565b6001546001600160a01b031633146105515760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104cf565b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6060601480546103a890610fe4565b6000610438338484610755565b6001546000906001600160a01b031633146106145760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104cf565b506009805460ff1916600190811790915543600b819055600a5590565b6001600160a01b0383166106935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104cf565b6001600160a01b0382166106f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104cf565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104cf565b6001600160a01b03821661081b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104cf565b6001600160a01b038316600090815260026020526040902054818110156108935760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104cf565b61089d8484610937565b6108a7828261101e565b6001600160a01b0380861660009081526002602052604080822093909355908516815290812080548492906108dd908490611035565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161092991815260200190565b60405180910390a350505050565b60095460ff168061095557506006546001600160a01b038381169116145b6109ac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a2074726164696e67206973206e6f742079657420656e61626c65604482015261321760f11b60648201526084016104cf565b6001600160a01b03821660009081526003602052604090205460ff1615156001148015906109f757506001600160a01b03811660009081526003602052604090205460ff1615156001145b610a02576000610a05565b60015b60ff16600d6000828254610a199190611035565b90915550506001600160a01b03821660009081526003602052604090205460ff1615156001148015610a6957506001600160a01b03811660009081526003602052604090205460ff161515600114155b80610abb57506001600160a01b03821660009081526003602052604090205460ff161515600114801590610abb57506001600160a01b03811660009081526003602052604090205460ff161515600114155b15610b0c57600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0383161790555b610b168282610b1a565b5050565b60085460ff1680610b4c575060085462010000900460ff168015610b4c57506006546001600160a01b03828116911614155b15610bfc5760005b600454610b639060019061101e565b811015610bf05760085462010000900460ff16610b81576028610b87565b633b9aca005b63ffffffff166002600060048481548110610ba457610ba4610e6a565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190610bd8908490610e96565b90915550819050610be88161104d565b915050610b54565b506008805460ff191690555b43600a541480610c135750600854610100900460ff165b80610c2e57506007600b54600a54610c2b919061101e565b11155b8015610c67575060036000610c436001610e0f565b6001600160a01b0316815260208101919091526040016000205460ff161515600114155b8015610c7557506001600c54115b610c80576001610c83565b601e5b60ff1660026000610c946001610e0f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610cc39190610e96565b9091555050600854610100900460ff168015610cf95750816001600160a01b0316610cee6000610e0f565b6001600160a01b0316145b80610d2e575060085462010000900460ff168015610d2e57506001600160a01b0382166005600101546001600160a01b031614155b610d39576001610d3c565b60005b60ff1660026000610d4d6000610e0f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254610d7c9190610e96565b9091555050600d54600490610d9290600a611066565b610d9c9190610e96565b600a148015610db35750600854610100900460ff16155b610dcb5760085460ff80821691610100900416610dcf565b6001805b6008805492151561ffff199093169115156101000260ff19169190911791909117905543600a55600c8054906000610e068361104d565b91905055505050565b60006001600c5411610e22576000610e64565b60048054600190610e3490859061101e565b610e3e919061101e565b81548110610e4e57610e4e610e6a565b6000918252602090912001546001600160a01b03165b92915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082610eb357634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610ee557858101830151858201604001528201610ec9565b81811115610ef7576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610f2457600080fd5b919050565b60008060408385031215610f3c57600080fd5b610f4583610f0d565b946020939093013593505050565b600080600060608486031215610f6857600080fd5b610f7184610f0d565b9250610f7f60208501610f0d565b9150604084013590509250925092565b600060208284031215610fa157600080fd5b610faa82610f0d565b9392505050565b60008060408385031215610fc457600080fd5b610fcd83610f0d565b9150610fdb60208401610f0d565b90509250929050565b600181811c90821680610ff857607f821691505b60208210810361101857634e487b7160e01b600052602260045260246000fd5b50919050565b60008282101561103057611030610e80565b500390565b6000821982111561104857611048610e80565b500190565b60006001820161105f5761105f610e80565b5060010190565b600081600019048311821515161561108057611080610e80565b50029056fea26469706673582212200ffde5c9c4a47e0d3d31ee9a2b11daf237edd131c8e93a5b1e84d3cd70385e0764736f6c634300080d0033