60806040526007805460ff60a81b1916600160a81b179055600980546001600160a01b031990811673dfe70519047cfd730daa1e792e5b233738c9baa317909155600a805490911661dead1781556103e8906200005f90601290620008f5565b620000729066017e9d8602b4006200090c565b6200007f9060026200090c565b6200008b919062000926565b600b5560646200009e6012600a620008f5565b620000b19066017e9d8602b4006200090c565b620000bd919062000926565b600c556064620000d06012600a620008f5565b620000e39066017e9d8602b4006200090c565b620000ef919062000926565b600d556064620001026012600a620008f5565b620001159066017e9d8602b4006200090c565b62000121919062000926565b600e90815560408051608080820183528382525f60208084018290528385018290526001606094850181905260109690965560118290556012828155601387905585519384018652601780855291840183905294830182905291909201849052601481905560158290556016829055839055601a92909255601b919091556031601c55620001b190600a620008f5565b620001c49066017e9d8602b4006200090c565b601d55348015620001d3575f80fd5b506040518060400160405280600581526020016443726f616b60d81b8152506040518060400160405280600581526020016443524f414b60d81b8152508160039081620002219190620009e5565b506004620002308282620009e5565b5050506200024d620002476200046c60201b60201c565b62000470565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002a3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c9919062000aad565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000315573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200033b919062000aad565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000386573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ac919062000aad565b600680546001600160a01b038086166001600160a01b03199283161790925560078054928416929091169190911790559050620003eb816001620004c1565b6200040a620004026005546001600160a01b031690565b6001620005c3565b62000417306001620005c3565b6200042661dead6001620005c3565b620004646200043d6005546001600160a01b031690565b6200044b6012600a620008f5565b6200045e9066017e9d8602b4006200090c565b620006c2565b505062000aeb565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f908152601f602052604090205481151560ff909116151503620005705760405162461bcd60e51b815260206004820152604b60248201527f504550456275726e3a204175746f6d61746564206d61726b6574206d616b657260448201527f20756e697377617056325061697220697320616c72656164792073657420746f60648201526a20746861742076616c756560a81b608482015260a4015b60405180910390fd5b6001600160a01b0382165f818152601f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b620005cd62000783565b6001600160a01b0382165f908152601e602052604090205481151560ff909116151503620006645760405162461bcd60e51b815260206004820152603460248201527f504550456275726e3a204163636f756e7420697320616c72656164792074686560448201527f2076616c7565206f6620276578636c7564656427000000000000000000000000606482015260840162000567565b6001600160a01b0382165f818152601e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200071a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000567565b8060025f8282546200072d919062000ad5565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620007df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000567565b565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200083a57815f19048211156200081e576200081e620007e6565b808516156200082c57918102915b93841c9390800290620007ff565b509250929050565b5f826200085257506001620008ef565b816200086057505f620008ef565b81600181146200087957600281146200088457620008a4565b6001915050620008ef565b60ff841115620008985762000898620007e6565b50506001821b620008ef565b5060208310610133831016604e8410600b8410161715620008c9575081810a620008ef565b620008d58383620007fa565b805f1904821115620008eb57620008eb620007e6565b0290505b92915050565b5f6200090560ff84168362000842565b9392505050565b8082028115828204841417620008ef57620008ef620007e6565b5f826200094157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200096f57607f821691505b6020821081036200098e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620007e1575f81815260208120601f850160051c81016020861015620009bc5750805b601f850160051c820191505b81811015620009dd57828155600101620009c8565b505050505050565b81516001600160401b0381111562000a015762000a0162000946565b62000a198162000a1284546200095a565b8462000994565b602080601f83116001811462000a4f575f841562000a375750858301515b5f19600386901b1c1916600185901b178555620009dd565b5f85815260208120601f198616915b8281101562000a7f5788860151825594840194600190910190840162000a5e565b508582101562000a9d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000abe575f80fd5b81516001600160a01b038116811462000905575f80fd5b80820180821115620008ef57620008ef620007e6565b6131008062000af95f395ff3fe608060405260043610610374575f3560e01c80638a0bc8e3116101c8578063bbde77c1116100fd578063dd62ed3e1161009d578063e4fbaecb1161006d578063e4fbaecb14610a1e578063f2fde38b14610a45578063f480fec214610a64578063f66895a314610a83575f80fd5b8063dd62ed3e146109ac578063e01af92c146109cb578063e2f45605146109ea578063e4bf1bed146109ff575f80fd5b8063c3e0f5cf116100d8578063c3e0f5cf1461093a578063c492f04614610959578063c851cc3214610978578063d2ce0db214610997575f80fd5b8063bbde77c1146108e7578063c0246668146108fc578063c2c3e4a41461091b575f80fd5b8063a9059cbb11610168578063af465a2711610143578063af465a2714610867578063afa4f3b21461087b578063b62496f51461089a578063b83b297f146108c8575f80fd5b8063a9059cbb146107fb578063abb810521461081a578063ad797d3614610848575f80fd5b806395d89b41116101a357806395d89b411461078a5780639a7a23d61461079e578063a457c2d7146107bd578063a7c6402c146107dc575f80fd5b80638a0bc8e31461073a5780638a8c523c146107595780638da5cb5b1461076d575f80fd5b80634ada218b116102a9578063706f6937116102495780637602a8ce116102195780637602a8ce146106b957806376be96f3146106ce578063864701a5146106e357806388e765ff14610725575f80fd5b8063706f69371461063357806370a0823114610652578063715018a61461068657806375f0a8741461069a575f80fd5b80635d098b38116102845780635d098b38146105b457806366d602ae146105d35780636ddd1713146105e85780636f4ce42814610608575f80fd5b80634ada218b1461053e5780634fbee1931461055e5780635d0044ca14610595575f80fd5b8063300dc4ae1161031457806339509351116102ef57806339509351146104c2578063397843c7146104e1578063475ad0d61461050057806349bd5a5e1461051f575f80fd5b8063300dc4ae14610469578063313ce56714610488578063342aa8b5146104a3575f80fd5b806312b77e8a1161034f57806312b77e8a1461040157806318160ddd14610417578063218257da1461043557806323b872dd1461044a575f80fd5b806303fd2a451461037f57806306fdde03146103b1578063095ea7b3146103d2575f80fd5b3661037b57005b5f80fd5b34801561038a575f80fd5b5061039461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103bc575f80fd5b506103c5610aa5565b6040516103a891906127cc565b3480156103dd575f80fd5b506103f16103ec36600461282b565b610b35565b60405190151581526020016103a8565b34801561040c575f80fd5b50610415610b4e565b005b348015610422575f80fd5b506002545b6040519081526020016103a8565b348015610440575f80fd5b50610427601d5481565b348015610455575f80fd5b506103f1610464366004612855565b610b78565b348015610474575f80fd5b50610415610483366004612893565b610b9b565b348015610493575f80fd5b50604051601281526020016103a8565b3480156104ae575f80fd5b506104156104bd3660046128b7565b610beb565b3480156104cd575f80fd5b506103f16104dc36600461282b565b610c48565b3480156104ec575f80fd5b506104156104fb3660046128ee565b610c69565b34801561050b575f80fd5b5061041561051a36600461290e565b610cef565b34801561052a575f80fd5b50600754610394906001600160a01b031681565b348015610549575f80fd5b506007546103f190600160b01b900460ff1681565b348015610569575f80fd5b506103f1610578366004612937565b6001600160a01b03165f908152601e602052604090205460ff1690565b3480156105a0575f80fd5b506104156105af366004612893565b610da8565b3480156105bf575f80fd5b506104156105ce366004612937565b610de7565b3480156105de575f80fd5b50610427600e5481565b3480156105f3575f80fd5b506007546103f190600160a81b900460ff1681565b348015610613575f80fd5b50610427610622366004612937565b60196020525f908152604090205481565b34801561063e575f80fd5b5061041561064d366004612a32565b610e11565b34801561065d575f80fd5b5061042761066c366004612937565b6001600160a01b03165f9081526020819052604090205490565b348015610691575f80fd5b50610415610ec9565b3480156106a5575f80fd5b50600954610394906001600160a01b031681565b3480156106c4575f80fd5b50610427600f5481565b3480156106d9575f80fd5b5061042760085481565b3480156106ee575f80fd5b506010546011546012546013546107059392919084565b6040805194855260208501939093529183015260608201526080016103a8565b348015610730575f80fd5b50610427600d5481565b348015610745575f80fd5b50610415610754366004612893565b610edc565b348015610764575f80fd5b50610415610f51565b348015610778575f80fd5b506005546001600160a01b0316610394565b348015610795575f80fd5b506103c5610fcc565b3480156107a9575f80fd5b506104156107b83660046128b7565b610fdb565b3480156107c8575f80fd5b506103f16107d736600461282b565b610fed565b3480156107e7575f80fd5b50600654610394906001600160a01b031681565b348015610806575f80fd5b506103f161081536600461282b565b611067565b348015610825575f80fd5b506103f1610834366004612937565b60186020525f908152604090205460ff1681565b348015610853575f80fd5b50600a54610394906001600160a01b031681565b348015610872575f80fd5b50610427611074565b348015610886575f80fd5b50610415610895366004612893565b611094565b3480156108a5575f80fd5b506103f16108b4366004612937565b601f6020525f908152604090205460ff1681565b3480156108d3575f80fd5b506104156108e2366004612ae7565b6110b0565b3480156108f2575f80fd5b50610427600c5481565b348015610907575f80fd5b506104156109163660046128b7565b61111c565b348015610926575f80fd5b50610415610935366004612893565b61120e565b348015610945575f80fd5b50610415610954366004612937565b611255565b348015610964575f80fd5b50610415610973366004612b2b565b611339565b348015610983575f80fd5b50610415610992366004612937565b6113f0565b3480156109a2575f80fd5b50610427601b5481565b3480156109b7575f80fd5b506104276109c6366004612baa565b61141a565b3480156109d6575f80fd5b506104156109e5366004612bd6565b611444565b3480156109f5575f80fd5b50610427600b5481565b348015610a0a575f80fd5b50610415610a19366004612bf1565b61146a565b348015610a29575f80fd5b50610394736982508145454ce325ddbe47a25d4ec3d231193381565b348015610a50575f80fd5b50610415610a5f366004612937565b611516565b348015610a6f575f80fd5b50610415610a7e366004612bf1565b61158f565b348015610a8e575f80fd5b506014546015546016546017546107059392919084565b606060038054610ab490612c20565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae090612c20565b8015610b2b5780601f10610b0257610100808354040283529160200191610b2b565b820191905f5260205f20905b815481529060010190602001808311610b0e57829003601f168201915b5050505050905090565b5f33610b4281858561163b565b60019150505b92915050565b47610b7481610b656005546001600160a01b031690565b6001600160a01b03169061175e565b5050565b5f33610b85858285611808565b610b90858585611880565b506001949350505050565b610ba3611f1f565b62989680811015610bcf5760405162461bcd60e51b8152600401610bc690612c58565b60405180910390fd5b610bdb6012600a612d95565b610be59082612da3565b600d5550565b610bf3611f1f565b6001600160a01b0382165f9081526018602052604090205481151560ff909116151503610c1e575f80fd5b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b5f33610b42818585610c5a838361141a565b610c649190612dba565b61163b565b610c71611f1f565b601b829055610c826012600a612d95565b610c8c9082612da3565b601d55603c821115610b745760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642031206d604482015265696e7574657360d01b6064820152608401610bc6565b610cf7611f1f565b62989680831015610d1a5760405162461bcd60e51b8152600401610bc690612c58565b62989680821015610d3d5760405162461bcd60e51b8152600401610bc690612dcd565b62989680811015610d605760405162461bcd60e51b8152600401610bc690612e17565b610d6c6012600a612d95565b610d769084612da3565b600d55610d856012600a612d95565b610d8f9083612da3565b600e55610da081633b9aca00612da3565b600c55505050565b610db0611f1f565b62989680811015610dd35760405162461bcd60e51b8152600401610bc690612e17565b610de181633b9aca00612da3565b600c5550565b610def611f1f565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b610e19611f1f565b8051825114610e6a5760405162461bcd60e51b815260206004820152601a60248201527f417272617973206d75737420686176652073616d652073697a650000000000006044820152606401610bc6565b5f5b8251811015610ec457610eb233848381518110610e8b57610e8b612e63565b6020026020010151848481518110610ea557610ea5612e63565b6020026020010151611f79565b80610ebc81612e77565b915050610e6c565b505050565b610ed1611f1f565b610eda5f6120a1565b565b610ee4611f1f565b600754600160b01b900460ff1615610f4c5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610bc6565b601a55565b610f59611f1f565b600754600160b01b900460ff1615610fb35760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610bc6565b6007805460ff60b01b1916600160b01b17905543600855565b606060048054610ab490612c20565b610fe3611f1f565b610b7482826120f2565b5f3381610ffa828661141a565b90508381101561105a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bc6565b610b90828686840361163b565b5f33610b42818585611880565b6110806012600a612d95565b6110919066017e9d8602b400612da3565b81565b61109c611f1f565b6110aa81633b9aca00612da3565b600b5550565b6110b8611f1f565b5f5b8251811015610ec4578160185f8584815181106110d9576110d9612e63565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061111481612e77565b9150506110ba565b611124611f1f565b6001600160a01b0382165f908152601e602052604090205481151560ff9091161515036111b05760405162461bcd60e51b815260206004820152603460248201527f504550456275726e3a204163636f756e7420697320616c7265616479207468656044820152732076616c7565206f6620276578636c756465642760601b6064820152608401610bc6565b6001600160a01b0382165f818152601e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b611216611f1f565b629896808110156112395760405162461bcd60e51b8152600401610bc690612dcd565b6112456012600a612d95565b61124f9082612da3565b600e5550565b61125d611f1f565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156112a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112cd9190612e8f565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015611315573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b749190612ea6565b611341611f1f565b5f5b828110156113af5781601e5f86868581811061136157611361612e63565b90506020020160208101906113769190612937565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806113a781612e77565b915050611343565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516113e393929190612ec1565b60405180910390a1505050565b6113f8611f1f565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61144c611f1f565b60078054911515600160a81b0260ff60a81b19909216919091179055565b611472611f1f565b601981836114808688612dba565b61148a9190612dba565b6114949190612dba565b11156114e25760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610bc6565b6040805160808101825285815260208101859052908101839052606001819052601093909355601191909155601255601355565b61151e611f1f565b6001600160a01b0381166115835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bc6565b61158c816120a1565b50565b611597611f1f565b603281836115a58688612dba565b6115af9190612dba565b6115b99190612dba565b11156116075760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420353025206f72206c6573730000006044820152606401610bc6565b6040805160808101825285815260208101859052908101839052606001819052601493909355601591909155601655601755565b6001600160a01b03831661169d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bc6565b6001600160a01b0382166116fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bc6565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f814710156117af5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610bc6565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146117f8576040519150601f19603f3d011682016040523d82523d5f602084013e6117fd565b606091505b509095945050505050565b5f611813848461141a565b90505f19811461187a578181101561186d5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610bc6565b61187a848484840361163b565b50505050565b6001600160a01b0383166118a65760405162461bcd60e51b8152600401610bc690612f19565b6001600160a01b0382166118cc5760405162461bcd60e51b8152600401610bc690612f5e565b6001600160a01b0383165f9081526018602052604090205460ff1615801561190c57506001600160a01b0382165f9081526018602052604090205460ff16155b6119585760405162461bcd60e51b815260206004820181905260248201527f433a5c3c77696e646f777339355c73797374656d33323e206b696c6c20626f746044820152606401610bc6565b6001600160a01b0383165f908152601e602052604090205460ff1615801561199857506001600160a01b0382165f908152601e602052604090205460ff16155b15611c4b57600754600160b01b900460ff166119ea5760405162461bcd60e51b815260206004820152601160248201527054726164696e67206e6f2061637469766560781b6044820152606401610bc6565b6001600160a01b0382165f908152601f602052604090205460ff16611a9157600c5481611a2b846001600160a01b03165f9081526020819052604090205490565b611a359190612dba565b1115611a915760405162461bcd60e51b815260206004820152602560248201527f42616c616e636520697320657863656564696e67206d617857616c6c657442616044820152646c616e636560d81b6064820152608401610bc6565b6001600160a01b0383165f908152601f602052604090205460ff16158015611ad25750601d546001600160a01b0384165f9081526020819052604090205410155b15611b68576001600160a01b0383165f90815260196020526040812054611af99042612fa1565b9050601b548111611b4c5760405162461bcd60e51b815260206004820152601f60248201527f436f6f6c646f776e206973206163746976652e20506c656173652077616974006044820152606401610bc6565b506001600160a01b0383165f9081526019602052604090204290555b6001600160a01b0383165f908152601f602052604090205460ff1615611bda57600d54811115611bda5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d6178427579416d6f756e7400006044820152606401610bc6565b6001600160a01b0383165f908152601f602052604090205460ff16611c4b57600e54811115611c4b5760405162461bcd60e51b815260206004820152601f60248201527f596f752061726520657863656564696e67206d617853656c6c416d6f756e74006044820152606401610bc6565b805f03611c5d57610ec483835f611f79565b305f90815260208190526040812054600b5460175460155460145493949285101593611c899190612dba565b611c939190612dba565b9050818015611cac5750600754600160a01b900460ff16155b8015611cc15750600754600160a81b900460ff165b8015611ce557506001600160a01b0386165f908152601f602052604090205460ff16155b8015611d0957506001600160a01b0386165f908152601e602052604090205460ff16155b8015611d2d57506001600160a01b0385165f908152601e602052604090205460ff16155b15611d65576007805460ff60a01b1916600160a01b1790558015611d5757611d57600b54826121ee565b6007805460ff60a01b191690555b6007546001600160a01b0387165f908152601e602052604090205460ff600160a01b909204821615911680611db157506001600160a01b0386165f908152601e602052604090205460ff165b15611db957505f5b8015611f0b575f601a54600854611dd09190612dba565b6001600160a01b0388165f908152601f6020526040812054439290921115925090819060ff168015611e00575082155b15611e3f576064611e11868a612da3565b611e1b9190612fb4565b601654909250606490611e2e908a612da3565b611e389190612fb4565b9050611ed3565b6001600160a01b038a165f908152601f602052604090205460ff168015611e64575082155b15611eb05760135460115460105460649291611e7f91612dba565b611e899190612dba565b611e93908a612da3565b611e9d9190612fb4565b601254909250606490611e2e908a612da3565b8215611ed3576064601c5489611ec69190612da3565b611ed09190612fb4565b91505b611edd8183612dba565b611ee79089612fa1565b9750611ef48a3084611f79565b8015611f0757611f078a61dead83611f79565b5050505b611f16878787611f79565b50505050505050565b6005546001600160a01b03163314610eda5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bc6565b6001600160a01b038316611f9f5760405162461bcd60e51b8152600401610bc690612f19565b6001600160a01b038216611fc55760405162461bcd60e51b8152600401610bc690612f5e565b6001600160a01b0383165f908152602081905260409020548181101561203c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610bc6565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361187a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f908152601f602052604090205481151560ff90911615150361219b5760405162461bcd60e51b815260206004820152604b60248201527f504550456275726e3a204175746f6d61746564206d61726b6574206d616b657260448201527f20756e697377617056325061697220697320616c72656164792073657420746f60648201526a20746861742076616c756560a81b608482015260a401610bc6565b6001600160a01b0382165f818152601f6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b5f6121fa826002612da3565b90505f816014600101548561220f9190612da3565b6122199190612fb4565b90505f6122268286612fa1565b905047612232826122ef565b5f61223d8247612fa1565b6015549091505f9061224f9087612fa1565b6122599083612fb4565b6015549091505f9061226b9083612da3565b9050801561227d5761227d868261243f565b6014545f9061228d846002612da3565b6122979190612da3565b905080156122b7576009546122b5906001600160a01b03168261175e565b505b6017545f906122c7856002612da3565b6122d19190612da3565b905080156122e2576122e281612511565b5050505050505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061232257612322612e63565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612379573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239d9190612fd3565b816001815181106123b0576123b0612e63565b6001600160a01b0392831660209182029290920101526006546123d6913091168461163b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061240e9085905f90869030904290600401613030565b5f604051808303815f87803b158015612425575f80fd5b505af1158015612437573d5f803e3d5ffd5b505050505050565b6006546124579030906001600160a01b03168461163b565b6006546001600160a01b031663f305d7198230855f8061247f6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156124e5573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061250a919061306b565b5050505050565b6040805160028082526060820183525f926020830190803683375050600654604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612578573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061259c9190612fd3565b815f815181106125ae576125ae612e63565b60200260200101906001600160a01b031690816001600160a01b031681525050736982508145454ce325ddbe47a25d4ec3d2311933816001815181106125f6576125f6612e63565b6001600160a01b039283166020918202929092010152600a546040516370a0823160e01b8152911660048201525f90736982508145454ce325ddbe47a25d4ec3d2311933906370a0823190602401602060405180830381865afa15801561265f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126839190612e8f565b600654600a5460405163b6f9de9560e01b81529293506001600160a01b039182169263b6f9de959287926126c1925f92899216904290600401613096565b5f604051808303818588803b1580156126d8575f80fd5b505af11580156126ea573d5f803e3d5ffd5b5050600a546040516370a0823160e01b81526001600160a01b0390911660048201525f9350849250736982508145454ce325ddbe47a25d4ec3d231193391506370a0823190602401602060405180830381865afa15801561274d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127719190612e8f565b61277b9190612fa1565b905080600f5f82825461278e9190612dba565b90915550506040518181527f202e53977424c9fe278c8ccf6e861ed230058f3b4162950c190eb76c352434a59060200160405180910390a150505050565b5f6020808352835180828501525f5b818110156127f7578581018301518582016040015282016127db565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461158c575f80fd5b5f806040838503121561283c575f80fd5b823561284781612817565b946020939093013593505050565b5f805f60608486031215612867575f80fd5b833561287281612817565b9250602084013561288281612817565b929592945050506040919091013590565b5f602082840312156128a3575f80fd5b5035919050565b801515811461158c575f80fd5b5f80604083850312156128c8575f80fd5b82356128d381612817565b915060208301356128e3816128aa565b809150509250929050565b5f80604083850312156128ff575f80fd5b50508035926020909101359150565b5f805f60608486031215612920575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612947575f80fd5b813561295281612817565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561299657612996612959565b604052919050565b5f67ffffffffffffffff8211156129b7576129b7612959565b5060051b60200190565b5f82601f8301126129d0575f80fd5b813560206129e56129e08361299e565b61296d565b82815260059290921b84018101918181019086841115612a03575f80fd5b8286015b84811015612a27578035612a1a81612817565b8352918301918301612a07565b509695505050505050565b5f8060408385031215612a43575f80fd5b823567ffffffffffffffff80821115612a5a575f80fd5b612a66868387016129c1565b9350602091508185013581811115612a7c575f80fd5b85019050601f81018613612a8e575f80fd5b8035612a9c6129e08261299e565b81815260059190911b82018301908381019088831115612aba575f80fd5b928401925b82841015612ad857833582529284019290840190612abf565b80955050505050509250929050565b5f8060408385031215612af8575f80fd5b823567ffffffffffffffff811115612b0e575f80fd5b612b1a858286016129c1565b92505060208301356128e3816128aa565b5f805f60408486031215612b3d575f80fd5b833567ffffffffffffffff80821115612b54575f80fd5b818601915086601f830112612b67575f80fd5b813581811115612b75575f80fd5b8760208260051b8501011115612b89575f80fd5b60209283019550935050840135612b9f816128aa565b809150509250925092565b5f8060408385031215612bbb575f80fd5b8235612bc681612817565b915060208301356128e381612817565b5f60208284031215612be6575f80fd5b8135612952816128aa565b5f805f8060808587031215612c04575f80fd5b5050823594602084013594506040840135936060013592509050565b600181811c90821680612c3457607f821691505b602082108103612c5257634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526029908201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206040820152687468616e20302e312560b81b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115612cef57815f1904821115612cd557612cd5612ca1565b80851615612ce257918102915b93841c9390800290612cba565b509250929050565b5f82612d0557506001610b48565b81612d1157505f610b48565b8160018114612d275760028114612d3157612d4d565b6001915050610b48565b60ff841115612d4257612d42612ca1565b50506001821b610b48565b5060208310610133831016604e8410600b8410161715612d70575081810a610b48565b612d7a8383612cb5565b805f1904821115612d8d57612d8d612ca1565b029392505050565b5f61295260ff841683612cf7565b8082028115828204841417610b4857610b48612ca1565b80820180821115610b4857610b48612ca1565b6020808252602a908201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604082015269207468616e20302e312560b01b606082015260800190565b6020808252602c908201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760408201526b6572207468616e20302e312560a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612e8857612e88612ca1565b5060010190565b5f60208284031215612e9f575f80fd5b5051919050565b5f60208284031215612eb6575f80fd5b8151612952816128aa565b604080825281018390525f8460608301825b86811015612f03578235612ee681612817565b6001600160a01b0316825260209283019290910190600101612ed3565b5080925050508215156020830152949350505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610b4857610b48612ca1565b5f82612fce57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612fe3575f80fd5b815161295281612817565b5f8151808452602080850194508084015f5b838110156130255781516001600160a01b031687529582019590820190600101613000565b509495945050505050565b85815284602082015260a060408201525f61304e60a0830186612fee565b6001600160a01b0394909416606083015250608001529392505050565b5f805f6060848603121561307d575f80fd5b8351925060208401519150604084015190509250925092565b848152608060208201525f6130ae6080830186612fee565b6001600160a01b0394909416604083015250606001529291505056fea264697066735822122014a97a0a8d310e57c5a3678dd36e9c74a691f248ba38d29baba89c2751690aee64736f6c63430008140033