0x608060405260043610610278575f3560e01c8063715018a61161014a5780639fccce32116100be578063b62496f511610078578063b62496f514610786578063bbc0c742146107b4578063c0246668146107d3578063dd62ed3e146107f2578063ee40166e14610836578063f2fde38b1461084b575f80fd5b80639fccce32146106e0578063a1d11b85146106f5578063a457c2d714610714578063a9059cbb14610733578063aacebbe314610752578063b5bf6c3214610771575f80fd5b80638da5cb5b1161010f5780638da5cb5b14610633578063917c978e14610650578063924de9b71461066f578063955b225b1461068e57806395d89b41146106ad5780639a7a23d6146106c1575f80fd5b8063715018a6146105c4578063751039fc146105d85780637571336a146105ec5780637dd72e8d1461060b5780638a8c523c1461061f575f80fd5b80631f3fed8f116101ec57806339509351116101a657806339509351146104df57806349bd5a5e146104fe5780634a62bb65146105315780634c24c51d1461054f5780636ddd17131461057057806370a0823114610590575f80fd5b80631f3fed8f1461041f5780632307b4411461043457806323b872dd14610453578063247d32fd1461047257806327c8f835146104a9578063313ce567146104be575f80fd5b806310d5de531161023d57806310d5de531461033f5780631694505e1461036d57806318160ddd146103b85780631816467f146103cc5780631a8145bb146103eb5780631c499ab014610400575f80fd5b806306e7b14d1461028357806306fdde03146102a4578063095ea7b3146102ce5780630b166d50146102fd578063106b5da114610320575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d3660046126cb565b61086a565b005b3480156102af575f80fd5b506102b86108f9565b6040516102c591906126e6565b60405180910390f35b3480156102d9575f80fd5b506102ed6102e8366004612731565b610989565b60405190151581526020016102c5565b348015610308575f80fd5b50610312601a5481565b6040519081526020016102c5565b34801561032b575f80fd5b506102a261033a36600461275b565b61099f565b34801561034a575f80fd5b506102ed6103593660046126cb565b601d6020525f908152604090205460ff1681565b348015610378575f80fd5b506103a07f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102c5565b3480156103c3575f80fd5b50600254610312565b3480156103d7575f80fd5b506102a26103e63660046126cb565b610a44565b3480156103f6575f80fd5b5061031260185481565b34801561040b575f80fd5b506102a261041a36600461275b565b610aca565b34801561042a575f80fd5b5061031260175481565b34801561043f575f80fd5b506102ed61044e366004612842565b610b6f565b34801561045e575f80fd5b506102ed61046d3660046128fe565b610d4a565b34801561047d575f80fd5b506102ed61048c3660046126cb565b6001600160a01b03165f908152601c602052604090205460ff1690565b3480156104b4575f80fd5b506103a061dead81565b3480156104c9575f80fd5b50600b5460405160ff90911681526020016102c5565b3480156104ea575f80fd5b506102ed6104f9366004612731565b610da7565b348015610509575f80fd5b506103a07f0000000000000000000000009be36bd7e6934c760cc2856fadd66d6110aa3ccb81565b34801561053c575f80fd5b50600b546102ed90610100900460ff1681565b34801561055a575f80fd5b50600b546102ed90640100000000900460ff1681565b34801561057b575f80fd5b50600b546102ed906301000000900460ff1681565b34801561059b575f80fd5b506103126105aa3660046126cb565b6001600160a01b03165f9081526020819052604090205490565b3480156105cf575f80fd5b506102a2610ddc565b3480156105e3575f80fd5b506102ed610e4f565b3480156105f7575f80fd5b506102a2610606366004612950565b610e8c565b348015610616575f80fd5b506102a2610ee0565b34801561062a575f80fd5b506102a2610f1f565b34801561063e575f80fd5b506005546001600160a01b03166103a0565b34801561065b575f80fd5b506102a261066a366004612983565b610f62565b34801561067a575f80fd5b506102a26106893660046129b2565b61101b565b348015610699575f80fd5b506102a26106a83660046129b2565b611063565b3480156106b8575f80fd5b506102b86110ad565b3480156106cc575f80fd5b506102a26106db366004612950565b6110bc565b3480156106eb575f80fd5b5061031260195481565b348015610700575f80fd5b506102a261070f366004612983565b61119b565b34801561071f575f80fd5b506102ed61072e366004612731565b61124e565b34801561073e575f80fd5b506102ed61074d366004612731565b61129b565b34801561075d575f80fd5b506102a261076c3660046126cb565b6112a7565b34801561077c575f80fd5b50610312601b5481565b348015610791575f80fd5b506102ed6107a03660046126cb565b601e6020525f908152604090205460ff1681565b3480156107bf575f80fd5b50600b546102ed9062010000900460ff1681565b3480156107de575f80fd5b506102a26107ed366004612950565b61132d565b3480156107fd575f80fd5b5061031261080c3660046129cb565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610841575f80fd5b50610312600c5481565b348015610856575f80fd5b506102a26108653660046126cb565b6113b5565b6005546001600160a01b0316331461089d5760405162461bcd60e51b815260040161089490612a02565b60405180910390fd5b6008546040516001600160a01b03918216918316907f15e571905a1c816ac9ad091c2b82079da1ad3668d345e3894c424c5e5b47d97b905f90a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60606003805461090890612a37565b80601f016020809104026020016040519081016040528092919081815260200182805461093490612a37565b801561097f5780601f106109565761010080835404028352916020019161097f565b820191905f5260205f20905b81548152906001019060200180831161096257829003601f168201915b5050505050905090565b5f61099533848461149f565b5060015b92915050565b6005546001600160a01b031633146109c95760405162461bcd60e51b815260040161089490612a02565b600b546109da9060ff16600a612b63565b60646109e560025490565b6109f0906001612b71565b6109fa9190612b88565b610a049190612b88565b811015610a235760405162461bcd60e51b815260040161089490612ba7565b600b54610a349060ff16600a612b63565b610a3e9082612b71565b60095550565b6005546001600160a01b03163314610a6e5760405162461bcd60e51b815260040161089490612a02565b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610af45760405162461bcd60e51b815260040161089490612a02565b600b54610b059060ff16600a612b63565b6064610b1060025490565b610b1b906001612b71565b610b259190612b88565b610b2f9190612b88565b811015610b4e5760405162461bcd60e51b815260040161089490612ba7565b600b54610b5f9060ff16600a612b63565b610b699082612b71565b600a5550565b6005545f906001600160a01b03163314610b9b5760405162461bcd60e51b815260040161089490612a02565b600b5462010000900460ff1615610c1a5760405162461bcd60e51b815260206004820152603760248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201527f742061697264726f70206166746572206c61756e63682e0000000000000000006064820152608401610894565b8151835114610c6b5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610894565b60c8835110610cdb5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610894565b5f5b8351811015610d40575f848281518110610cf957610cf9612bf4565b602002602001015190505f848381518110610d1657610d16612bf4565b60200260200101519050610d2b3383836115c3565b50508080610d3890612c08565b915050610cdd565b5060019392505050565b5f610d568484846115c3565b610d408433610da285604051806060016040528060288152602001612daa602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190611e28565b61149f565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610995918590610da29086611e60565b6005546001600160a01b03163314610e065760405162461bcd60e51b815260040161089490612a02565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005545f906001600160a01b03163314610e7b5760405162461bcd60e51b815260040161089490612a02565b50600b805461ff0019169055600190565b6005546001600160a01b03163314610eb65760405162461bcd60e51b815260040161089490612a02565b6001600160a01b03919091165f908152601d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f0a5760405162461bcd60e51b815260040161089490612a02565b5f601881905560178190556019819055601a55565b6005546001600160a01b03163314610f495760405162461bcd60e51b815260040161089490612a02565b600b805463ffff00001916630101000017905543600c55565b6005546001600160a01b03163314610f8c5760405162461bcd60e51b815260040161089490612a02565b600e849055600f839055601082905560118190558082610fac8587612c20565b610fb69190612c20565b610fc09190612c20565b600d819055601e10156110155760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610894565b50505050565b6005546001600160a01b031633146110455760405162461bcd60e51b815260040161089490612a02565b600b805491151563010000000263ff00000019909216919091179055565b6005546001600160a01b0316331461108d5760405162461bcd60e51b815260040161089490612a02565b600b80549115156401000000000264ff0000000019909216919091179055565b60606004805461090890612a37565b6005546001600160a01b031633146110e65760405162461bcd60e51b815260040161089490612a02565b7f0000000000000000000000009be36bd7e6934c760cc2856fadd66d6110aa3ccb6001600160a01b0316826001600160a01b03160361118d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610894565b6111978282611ec5565b5050565b6005546001600160a01b031633146111c55760405162461bcd60e51b815260040161089490612a02565b601384905560148390556015829055601681905580826111e58587612c20565b6111ef9190612c20565b6111f99190612c20565b6012819055601e10156110155760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610894565b5f6109953384610da285604051806060016040528060258152602001612dd260259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190611e28565b5f6109953384846115c3565b6005546001600160a01b031633146112d15760405162461bcd60e51b815260040161089490612a02565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113575760405162461bcd60e51b815260040161089490612a02565b6001600160a01b0382165f818152601c6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113df5760405162461bcd60e51b815260040161089490612a02565b6001600160a01b0381166114445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610894565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610894565b6001600160a01b0382166115625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610894565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166115e95760405162461bcd60e51b815260040161089490612c33565b6001600160a01b03821661160f5760405162461bcd60e51b815260040161089490612c78565b600b5462010000900460ff166116a1576001600160a01b0383165f908152601c602052604090205460ff168061165c57506001600160a01b0382165f908152601c602052604090205460ff165b6116a15760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610894565b805f036116b8576116b383835f611f18565b505050565b600b54610100900460ff16156119c0576005546001600160a01b038481169116148015906116f457506005546001600160a01b03838116911614155b801561170857506001600160a01b03821615155b801561171f57506001600160a01b03821661dead14155b801561176557506001600160a01b0383165f908152601c602052604090205460ff168061176357506001600160a01b0382165f908152601c602052604090205460ff165b155b801561177b5750600554600160a01b900460ff16155b156119c0576001600160a01b0383165f908152601e602052604090205460ff1680156117bf57506001600160a01b0382165f908152601d602052604090205460ff16155b156118a2576009548111156118345760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610894565b600a546001600160a01b0383165f908152602081905260409020546118599083612c20565b111561189d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610894565b6119c0565b6001600160a01b0382165f908152601e602052604090205460ff1680156118e157506001600160a01b0383165f908152601d602052604090205460ff16155b156119575760095481111561189d5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610894565b600a546001600160a01b0383165f9081526020819052604090205461197c9083612c20565b11156119c05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610894565b305f90815260208190526040902054801580159081906119e95750600b546301000000900460ff165b80156119ff5750600554600160a01b900460ff16155b8015611a2357506001600160a01b0385165f908152601e602052604090205460ff16155b8015611a4757506001600160a01b0385165f908152601c602052604090205460ff16155b8015611a6b57506001600160a01b0384165f908152601c602052604090205460ff16155b15611a99576005805460ff60a01b1916600160a01b179055611a8b61201e565b6005805460ff60a01b191690555b6005546001600160a01b0386165f908152601c602052604090205460ff600160a01b909204821615911680611ae557506001600160a01b0385165f908152601c602052604090205460ff165b15611aed57505f5b5f8115611e145743600c546001611b049190612c20565b10158015611b4a57506001600160a01b0386165f908152601e602052604090205460ff1680611b4a57506001600160a01b0387165f908152601e602052604090205460ff165b15611bf357611b656064611b5f8760326122f8565b90612376565b90506063611b74826021612b71565b611b7e9190612b88565b60185f828254611b8e9190612c20565b9091555060639050611ba1826021612b71565b611bab9190612b88565b601a5f828254611bbb9190612c20565b9091555060639050611bce826021612b71565b611bd89190612b88565b60175f828254611be89190612c20565b90915550611df69050565b6001600160a01b0386165f908152601e602052604090205460ff1615611cf45760125415611cef57611c356064611b5f601254886122f890919063ffffffff16565b905060125460145482611c489190612b71565b611c529190612b88565b60185f828254611c629190612c20565b9091555050601254601554611c779083612b71565b611c819190612b88565b60195f828254611c919190612c20565b9091555050601254601354611ca69083612b71565b611cb09190612b88565b60175f828254611cc09190612c20565b9091555050601254601654611cd59083612b71565b611cdf9190612b88565b601a5f828254611be89190612c20565b611df6565b6001600160a01b0387165f908152601e602052604090205460ff1615611df657600d5415611df657611d366064611b5f600d54886122f890919063ffffffff16565b9050600d54600f5482611d499190612b71565b611d539190612b88565b60185f828254611d639190612c20565b9091555050600d54601054611d789083612b71565b611d829190612b88565b60195f828254611d929190612c20565b9091555050600d54600e54611da79083612b71565b611db19190612b88565b60175f828254611dc19190612c20565b9091555050600d54601154611dd69083612b71565b611de09190612b88565b601a5f828254611df09190612c20565b90915550505b8015611e0757611e07873083611f18565b611e118186612cbb565b94505b611e1f878787611f18565b50505050505050565b5f8184841115611e4b5760405162461bcd60e51b815260040161089491906126e6565b505f611e578486612cbb565b95945050505050565b5f80611e6c8385612c20565b905083811015611ebe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610894565b9392505050565b6001600160a01b0382165f818152601e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611f3e5760405162461bcd60e51b815260040161089490612c33565b6001600160a01b038216611f645760405162461bcd60e51b815260040161089490612c78565b611fa081604051806060016040528060268152602001612d84602691396001600160a01b0386165f908152602081905260409020549190611e28565b6001600160a01b038085165f908152602081905260408082209390935590841681522054611fce9082611e60565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016115b6565b305f90815260208190526040812054905080601b5f8282546120409190612c20565b9091555050600b54640100000000900460ff1615612079578015612076576006546120769030906001600160a01b031683611f18565b50565b5f601a546019546017546018546120909190612c20565b61209a9190612c20565b6120a49190612c20565b90505f8215806120b2575081155b156120bc57505050565b5f600283601854866120ce9190612b71565b6120d89190612b88565b6120e29190612b88565b90505f6120ef85836123b7565b9050476120fb826123f8565b5f61210647836123b7565b90505f61212287611b5f601754856122f890919063ffffffff16565b90505f61213e88611b5f601954866122f890919063ffffffff16565b90505f61215a89611b5f601a54876122f890919063ffffffff16565b90505f81836121698688612cbb565b6121739190612cbb565b61217d9190612cbb565b5f601881905560178190556019819055601a8190556007546040519293506001600160a01b031691859181818185875af1925050503d805f81146121dc576040519150601f19603f3d011682016040523d82523d5f602084013e6121e1565b606091505b5050600854604051919a506001600160a01b03169083905f81818185875af1925050503d805f811461222e576040519150601f19603f3d011682016040523d82523d5f602084013e612233565b606091505b5090995050871580159061224657505f81115b156122995761225588826125ae565b601854604080518981526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b039091169047905f81818185875af1925050503d805f81146122e3576040519150601f19603f3d011682016040523d82523d5f602084013e6122e8565b606091505b5050505050505050505050505050565b5f825f0361230757505f610999565b5f6123128385612b71565b90508261231f8583612b88565b14611ebe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610894565b5f611ebe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061268b565b5f611ebe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e28565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061242b5761242b612bf4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124cb9190612cce565b816001815181106124de576124de612bf4565b60200260200101906001600160a01b031690816001600160a01b031681525050612529307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461149f565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061257d9085905f90869030904290600401612ce9565b5f604051808303815f87803b158015612594575f80fd5b505af19250505080156125a5575060015b15611197575050565b6125d9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461149f565b60405163f305d71960e01b8152306004820152602481018390525f60448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af19350505050801561267f575060408051601f3d908101601f1916820190925261267c91810190612d58565b60015b15611197575050505050565b5f81836126ab5760405162461bcd60e51b815260040161089491906126e6565b505f611e578486612b88565b6001600160a01b0381168114612076575f80fd5b5f602082840312156126db575f80fd5b8135611ebe816126b7565b5f6020808352835180828501525f5b81811015612711578581018301518582016040015282016126f5565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215612742575f80fd5b823561274d816126b7565b946020939093013593505050565b5f6020828403121561276b575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156127af576127af612772565b604052919050565b5f67ffffffffffffffff8211156127d0576127d0612772565b5060051b60200190565b5f82601f8301126127e9575f80fd5b813560206127fe6127f9836127b7565b612786565b82815260059290921b8401810191818101908684111561281c575f80fd5b8286015b848110156128375780358352918301918301612820565b509695505050505050565b5f8060408385031215612853575f80fd5b823567ffffffffffffffff8082111561286a575f80fd5b818501915085601f83011261287d575f80fd5b8135602061288d6127f9836127b7565b82815260059290921b840181019181810190898411156128ab575f80fd5b948201945b838610156128d25785356128c3816126b7565b825294820194908201906128b0565b965050860135925050808211156128e7575f80fd5b506128f4858286016127da565b9150509250929050565b5f805f60608486031215612910575f80fd5b833561291b816126b7565b9250602084013561292b816126b7565b929592945050506040919091013590565b8035801515811461294b575f80fd5b919050565b5f8060408385031215612961575f80fd5b823561296c816126b7565b915061297a6020840161293c565b90509250929050565b5f805f8060808587031215612996575f80fd5b5050823594602084013594506040840135936060013592509050565b5f602082840312156129c2575f80fd5b611ebe8261293c565b5f80604083850312156129dc575f80fd5b82356129e7816126b7565b915060208301356129f7816126b7565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612a4b57607f821691505b602082108103612a6957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115612abd57815f1904821115612aa357612aa3612a6f565b80851615612ab057918102915b93841c9390800290612a88565b509250929050565b5f82612ad357506001610999565b81612adf57505f610999565b8160018114612af55760028114612aff57612b1b565b6001915050610999565b60ff841115612b1057612b10612a6f565b50506001821b610999565b5060208310610133831016604e8410600b8410161715612b3e575081810a610999565b612b488383612a83565b805f1904821115612b5b57612b5b612a6f565b029392505050565b5f611ebe60ff841683612ac5565b808202811582820484141761099957610999612a6f565b5f82612ba257634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602d908201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060408201526c6c6f776572207468616e20312560981b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612c1957612c19612a6f565b5060010190565b8082018082111561099957610999612a6f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561099957610999612a6f565b5f60208284031215612cde575f80fd5b8151611ebe816126b7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612d375784516001600160a01b031683529383019391830191600101612d12565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612d6a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122006bcb6ecfa7aa8e8180d8331757a031f4e1599b0c78879795aa8191cf98682d464736f6c63430008140033
0x60c0604052600b805464ffffffff00191661010017905534801562000022575f80fd5b5060408051808201825260208082527f4861727279506f747465724f62616d615465727261536f6e69633130496e752081830152825180840190935260048352635553544360e01b908301529060036200007d838262000979565b5060046200008c828262000979565b5050505f620000a06200051760201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f8051602062003a75833981519152908290a350600b805460ff1916600890811790915533905f90620000fc90600a62000b4e565b6200010c906305f5e10062000b65565b905060646200011d82600262000b65565b62000129919062000b7f565b60095560646200013b82600262000b65565b62000147919062000b7f565b600a908155600e8190555f600f819055601081905560118190559081906200017190829062000b9f565b6200017d919062000b9f565b62000189919062000b9f565b600d55602860138190555f601481905560158190556016819055908190620001b390829062000b9f565b620001bf919062000b9f565b620001cb919062000b9f565b601255600680546001600160a01b0384166001600160a01b03199182168117909255600780548216831790556008805490911690911790555f466038036200022957507310ed43c718714eb63d5aa57b78b54704e256024e62000319565b466061036200024e575073d99d1c33f9fc3444f8101754abc46c52416550d162000319565b4661a86a036200027457507360ae616a2155ee3d9a68541ba4544862310933d462000319565b4660890362000299575073a5e0829caced8ffdd4de3c43696c57f7d7a678ff62000319565b4660fa03620002be575073f491e7b69e4244ad4002bc14e878a34207e38c2962000319565b46600303620002e35750737a250d5630b4cf539739df2c5dacb4c659f2488d62000319565b4660011480620002f35750466004145b15620003155750737a250d5630b4cf539739df2c5dacb4c659f2488d62000319565b5f80fd5b80620003278160016200051b565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000370573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000396919062000bb5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000408919062000bb5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000453573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000479919062000bb5565b6001600160a01b031660a0819052620004949060016200051b565b60a051620004a490600162000593565b620004b1846001620005e6565b620004be306001620005e6565b620004cd61dead6001620005e6565b620004da8460016200051b565b620004e73060016200051b565b620004f661dead60016200051b565b6200050284846200068e565b6200050d8462000770565b5050505062000bdd565b3390565b6005546001600160a01b03163314620005695760405162461bcd60e51b815260206004820181905260248201525f8051602062003a5583398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601d60205260409020805460ff1916911515919091179055565b6001600160a01b0382165f818152601e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620006305760405162461bcd60e51b815260206004820181905260248201525f8051602062003a55833981519152604482015260640162000560565b6001600160a01b0382165f818152601c6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006e65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000560565b600254620006f590826200086f565b6002556001600160a01b0382165f908152602081905260409020546200071c90826200086f565b6001600160a01b0383165f81815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03163314620007ba5760405162461bcd60e51b815260206004820181905260248201525f8051602062003a55833981519152604482015260640162000560565b6001600160a01b038116620008215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000560565b6005546040516001600160a01b038084169216905f8051602062003a75833981519152905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b505050565b5f806200087d838562000b9f565b905083811015620008d15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000560565b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200090357607f821691505b6020821081036200092257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200086a575f81815260208120601f850160051c81016020861015620009505750805b601f850160051c820191505b8181101562000971578281556001016200095c565b505050505050565b81516001600160401b03811115620009955762000995620008da565b620009ad81620009a68454620008ee565b8462000928565b602080601f831160018114620009e3575f8415620009cb5750858301515b5f19600386901b1c1916600185901b17855562000971565b5f85815260208120601f198616915b8281101562000a1357888601518255948401946001909101908401620009f2565b508582101562000a3157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111562000a9557815f190482111562000a795762000a7962000a41565b8085161562000a8757918102915b93841c939080029062000a5a565b509250929050565b5f8262000aad57506001620008d4565b8162000abb57505f620008d4565b816001811462000ad4576002811462000adf5762000aff565b6001915050620008d4565b60ff84111562000af35762000af362000a41565b50506001821b620008d4565b5060208310610133831016604e8410600b841016171562000b24575081810a620008d4565b62000b30838362000a55565b805f190482111562000b465762000b4662000a41565b029392505050565b5f62000b5e60ff84168362000a9d565b9392505050565b8082028115828204841417620008d457620008d462000a41565b5f8262000b9a57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620008d457620008d462000a41565b5f6020828403121562000bc6575f80fd5b81516001600160a01b0381168114620008d1575f80fd5b60805160a051612e2c62000c295f395f818161050f01526110e801525f818161037e0152818161244d0152818161250401528181612540015281816125b401526126100152612e2c5ff3fe608060405260043610610278575f3560e01c8063715018a61161014a5780639fccce32116100be578063b62496f511610078578063b62496f514610786578063bbc0c742146107b4578063c0246668146107d3578063dd62ed3e146107f2578063ee40166e14610836578063f2fde38b1461084b575f80fd5b80639fccce32146106e0578063a1d11b85146106f5578063a457c2d714610714578063a9059cbb14610733578063aacebbe314610752578063b5bf6c3214610771575f80fd5b80638da5cb5b1161010f5780638da5cb5b14610633578063917c978e14610650578063924de9b71461066f578063955b225b1461068e57806395d89b41146106ad5780639a7a23d6146106c1575f80fd5b8063715018a6146105c4578063751039fc146105d85780637571336a146105ec5780637dd72e8d1461060b5780638a8c523c1461061f575f80fd5b80631f3fed8f116101ec57806339509351116101a657806339509351146104df57806349bd5a5e146104fe5780634a62bb65146105315780634c24c51d1461054f5780636ddd17131461057057806370a0823114610590575f80fd5b80631f3fed8f1461041f5780632307b4411461043457806323b872dd14610453578063247d32fd1461047257806327c8f835146104a9578063313ce567146104be575f80fd5b806310d5de531161023d57806310d5de531461033f5780631694505e1461036d57806318160ddd146103b85780631816467f146103cc5780631a8145bb146103eb5780631c499ab014610400575f80fd5b806306e7b14d1461028357806306fdde03146102a4578063095ea7b3146102ce5780630b166d50146102fd578063106b5da114610320575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b506102a261029d3660046126cb565b61086a565b005b3480156102af575f80fd5b506102b86108f9565b6040516102c591906126e6565b60405180910390f35b3480156102d9575f80fd5b506102ed6102e8366004612731565b610989565b60405190151581526020016102c5565b348015610308575f80fd5b50610312601a5481565b6040519081526020016102c5565b34801561032b575f80fd5b506102a261033a36600461275b565b61099f565b34801561034a575f80fd5b506102ed6103593660046126cb565b601d6020525f908152604090205460ff1681565b348015610378575f80fd5b506103a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c5565b3480156103c3575f80fd5b50600254610312565b3480156103d7575f80fd5b506102a26103e63660046126cb565b610a44565b3480156103f6575f80fd5b5061031260185481565b34801561040b575f80fd5b506102a261041a36600461275b565b610aca565b34801561042a575f80fd5b5061031260175481565b34801561043f575f80fd5b506102ed61044e366004612842565b610b6f565b34801561045e575f80fd5b506102ed61046d3660046128fe565b610d4a565b34801561047d575f80fd5b506102ed61048c3660046126cb565b6001600160a01b03165f908152601c602052604090205460ff1690565b3480156104b4575f80fd5b506103a061dead81565b3480156104c9575f80fd5b50600b5460405160ff90911681526020016102c5565b3480156104ea575f80fd5b506102ed6104f9366004612731565b610da7565b348015610509575f80fd5b506103a07f000000000000000000000000000000000000000000000000000000000000000081565b34801561053c575f80fd5b50600b546102ed90610100900460ff1681565b34801561055a575f80fd5b50600b546102ed90640100000000900460ff1681565b34801561057b575f80fd5b50600b546102ed906301000000900460ff1681565b34801561059b575f80fd5b506103126105aa3660046126cb565b6001600160a01b03165f9081526020819052604090205490565b3480156105cf575f80fd5b506102a2610ddc565b3480156105e3575f80fd5b506102ed610e4f565b3480156105f7575f80fd5b506102a2610606366004612950565b610e8c565b348015610616575f80fd5b506102a2610ee0565b34801561062a575f80fd5b506102a2610f1f565b34801561063e575f80fd5b506005546001600160a01b03166103a0565b34801561065b575f80fd5b506102a261066a366004612983565b610f62565b34801561067a575f80fd5b506102a26106893660046129b2565b61101b565b348015610699575f80fd5b506102a26106a83660046129b2565b611063565b3480156106b8575f80fd5b506102b86110ad565b3480156106cc575f80fd5b506102a26106db366004612950565b6110bc565b3480156106eb575f80fd5b5061031260195481565b348015610700575f80fd5b506102a261070f366004612983565b61119b565b34801561071f575f80fd5b506102ed61072e366004612731565b61124e565b34801561073e575f80fd5b506102ed61074d366004612731565b61129b565b34801561075d575f80fd5b506102a261076c3660046126cb565b6112a7565b34801561077c575f80fd5b50610312601b5481565b348015610791575f80fd5b506102ed6107a03660046126cb565b601e6020525f908152604090205460ff1681565b3480156107bf575f80fd5b50600b546102ed9062010000900460ff1681565b3480156107de575f80fd5b506102a26107ed366004612950565b61132d565b3480156107fd575f80fd5b5061031261080c3660046129cb565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610841575f80fd5b50610312600c5481565b348015610856575f80fd5b506102a26108653660046126cb565b6113b5565b6005546001600160a01b0316331461089d5760405162461bcd60e51b815260040161089490612a02565b60405180910390fd5b6008546040516001600160a01b03918216918316907f15e571905a1c816ac9ad091c2b82079da1ad3668d345e3894c424c5e5b47d97b905f90a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b60606003805461090890612a37565b80601f016020809104026020016040519081016040528092919081815260200182805461093490612a37565b801561097f5780601f106109565761010080835404028352916020019161097f565b820191905f5260205f20905b81548152906001019060200180831161096257829003601f168201915b5050505050905090565b5f61099533848461149f565b5060015b92915050565b6005546001600160a01b031633146109c95760405162461bcd60e51b815260040161089490612a02565b600b546109da9060ff16600a612b63565b60646109e560025490565b6109f0906001612b71565b6109fa9190612b88565b610a049190612b88565b811015610a235760405162461bcd60e51b815260040161089490612ba7565b600b54610a349060ff16600a612b63565b610a3e9082612b71565b60095550565b6005546001600160a01b03163314610a6e5760405162461bcd60e51b815260040161089490612a02565b6007546040516001600160a01b03918216918316907f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e743905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610af45760405162461bcd60e51b815260040161089490612a02565b600b54610b059060ff16600a612b63565b6064610b1060025490565b610b1b906001612b71565b610b259190612b88565b610b2f9190612b88565b811015610b4e5760405162461bcd60e51b815260040161089490612ba7565b600b54610b5f9060ff16600a612b63565b610b699082612b71565b600a5550565b6005545f906001600160a01b03163314610b9b5760405162461bcd60e51b815260040161089490612a02565b600b5462010000900460ff1615610c1a5760405162461bcd60e51b815260206004820152603760248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201527f742061697264726f70206166746572206c61756e63682e0000000000000000006064820152608401610894565b8151835114610c6b5760405162461bcd60e51b815260206004820152601e60248201527f617272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610894565b60c8835110610cdb5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610894565b5f5b8351811015610d40575f848281518110610cf957610cf9612bf4565b602002602001015190505f848381518110610d1657610d16612bf4565b60200260200101519050610d2b3383836115c3565b50508080610d3890612c08565b915050610cdd565b5060019392505050565b5f610d568484846115c3565b610d408433610da285604051806060016040528060288152602001612daa602891396001600160a01b038a165f9081526001602090815260408083203384529091529020549190611e28565b61149f565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610995918590610da29086611e60565b6005546001600160a01b03163314610e065760405162461bcd60e51b815260040161089490612a02565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005545f906001600160a01b03163314610e7b5760405162461bcd60e51b815260040161089490612a02565b50600b805461ff0019169055600190565b6005546001600160a01b03163314610eb65760405162461bcd60e51b815260040161089490612a02565b6001600160a01b03919091165f908152601d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f0a5760405162461bcd60e51b815260040161089490612a02565b5f601881905560178190556019819055601a55565b6005546001600160a01b03163314610f495760405162461bcd60e51b815260040161089490612a02565b600b805463ffff00001916630101000017905543600c55565b6005546001600160a01b03163314610f8c5760405162461bcd60e51b815260040161089490612a02565b600e849055600f839055601082905560118190558082610fac8587612c20565b610fb69190612c20565b610fc09190612c20565b600d819055601e10156110155760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610894565b50505050565b6005546001600160a01b031633146110455760405162461bcd60e51b815260040161089490612a02565b600b805491151563010000000263ff00000019909216919091179055565b6005546001600160a01b0316331461108d5760405162461bcd60e51b815260040161089490612a02565b600b80549115156401000000000264ff0000000019909216919091179055565b60606004805461090890612a37565b6005546001600160a01b031633146110e65760405162461bcd60e51b815260040161089490612a02565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361118d5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610894565b6111978282611ec5565b5050565b6005546001600160a01b031633146111c55760405162461bcd60e51b815260040161089490612a02565b601384905560148390556015829055601681905580826111e58587612c20565b6111ef9190612c20565b6111f99190612c20565b6012819055601e10156110155760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420333025206f72206c6573730000006044820152606401610894565b5f6109953384610da285604051806060016040528060258152602001612dd260259139335f9081526001602090815260408083206001600160a01b038d1684529091529020549190611e28565b5f6109953384846115c3565b6005546001600160a01b031633146112d15760405162461bcd60e51b815260040161089490612a02565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113575760405162461bcd60e51b815260040161089490612a02565b6001600160a01b0382165f818152601c6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113df5760405162461bcd60e51b815260040161089490612a02565b6001600160a01b0381166114445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610894565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610894565b6001600160a01b0382166115625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610894565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166115e95760405162461bcd60e51b815260040161089490612c33565b6001600160a01b03821661160f5760405162461bcd60e51b815260040161089490612c78565b600b5462010000900460ff166116a1576001600160a01b0383165f908152601c602052604090205460ff168061165c57506001600160a01b0382165f908152601c602052604090205460ff165b6116a15760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610894565b805f036116b8576116b383835f611f18565b505050565b600b54610100900460ff16156119c0576005546001600160a01b038481169116148015906116f457506005546001600160a01b03838116911614155b801561170857506001600160a01b03821615155b801561171f57506001600160a01b03821661dead14155b801561176557506001600160a01b0383165f908152601c602052604090205460ff168061176357506001600160a01b0382165f908152601c602052604090205460ff165b155b801561177b5750600554600160a01b900460ff16155b156119c0576001600160a01b0383165f908152601e602052604090205460ff1680156117bf57506001600160a01b0382165f908152601d602052604090205460ff16155b156118a2576009548111156118345760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610894565b600a546001600160a01b0383165f908152602081905260409020546118599083612c20565b111561189d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610894565b6119c0565b6001600160a01b0382165f908152601e602052604090205460ff1680156118e157506001600160a01b0383165f908152601d602052604090205460ff16155b156119575760095481111561189d5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610894565b600a546001600160a01b0383165f9081526020819052604090205461197c9083612c20565b11156119c05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610894565b305f90815260208190526040902054801580159081906119e95750600b546301000000900460ff165b80156119ff5750600554600160a01b900460ff16155b8015611a2357506001600160a01b0385165f908152601e602052604090205460ff16155b8015611a4757506001600160a01b0385165f908152601c602052604090205460ff16155b8015611a6b57506001600160a01b0384165f908152601c602052604090205460ff16155b15611a99576005805460ff60a01b1916600160a01b179055611a8b61201e565b6005805460ff60a01b191690555b6005546001600160a01b0386165f908152601c602052604090205460ff600160a01b909204821615911680611ae557506001600160a01b0385165f908152601c602052604090205460ff165b15611aed57505f5b5f8115611e145743600c546001611b049190612c20565b10158015611b4a57506001600160a01b0386165f908152601e602052604090205460ff1680611b4a57506001600160a01b0387165f908152601e602052604090205460ff165b15611bf357611b656064611b5f8760326122f8565b90612376565b90506063611b74826021612b71565b611b7e9190612b88565b60185f828254611b8e9190612c20565b9091555060639050611ba1826021612b71565b611bab9190612b88565b601a5f828254611bbb9190612c20565b9091555060639050611bce826021612b71565b611bd89190612b88565b60175f828254611be89190612c20565b90915550611df69050565b6001600160a01b0386165f908152601e602052604090205460ff1615611cf45760125415611cef57611c356064611b5f601254886122f890919063ffffffff16565b905060125460145482611c489190612b71565b611c529190612b88565b60185f828254611c629190612c20565b9091555050601254601554611c779083612b71565b611c819190612b88565b60195f828254611c919190612c20565b9091555050601254601354611ca69083612b71565b611cb09190612b88565b60175f828254611cc09190612c20565b9091555050601254601654611cd59083612b71565b611cdf9190612b88565b601a5f828254611be89190612c20565b611df6565b6001600160a01b0387165f908152601e602052604090205460ff1615611df657600d5415611df657611d366064611b5f600d54886122f890919063ffffffff16565b9050600d54600f5482611d499190612b71565b611d539190612b88565b60185f828254611d639190612c20565b9091555050600d54601054611d789083612b71565b611d829190612b88565b60195f828254611d929190612c20565b9091555050600d54600e54611da79083612b71565b611db19190612b88565b60175f828254611dc19190612c20565b9091555050600d54601154611dd69083612b71565b611de09190612b88565b601a5f828254611df09190612c20565b90915550505b8015611e0757611e07873083611f18565b611e118186612cbb565b94505b611e1f878787611f18565b50505050505050565b5f8184841115611e4b5760405162461bcd60e51b815260040161089491906126e6565b505f611e578486612cbb565b95945050505050565b5f80611e6c8385612c20565b905083811015611ebe5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610894565b9392505050565b6001600160a01b0382165f818152601e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611f3e5760405162461bcd60e51b815260040161089490612c33565b6001600160a01b038216611f645760405162461bcd60e51b815260040161089490612c78565b611fa081604051806060016040528060268152602001612d84602691396001600160a01b0386165f908152602081905260409020549190611e28565b6001600160a01b038085165f908152602081905260408082209390935590841681522054611fce9082611e60565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016115b6565b305f90815260208190526040812054905080601b5f8282546120409190612c20565b9091555050600b54640100000000900460ff1615612079578015612076576006546120769030906001600160a01b031683611f18565b50565b5f601a546019546017546018546120909190612c20565b61209a9190612c20565b6120a49190612c20565b90505f8215806120b2575081155b156120bc57505050565b5f600283601854866120ce9190612b71565b6120d89190612b88565b6120e29190612b88565b90505f6120ef85836123b7565b9050476120fb826123f8565b5f61210647836123b7565b90505f61212287611b5f601754856122f890919063ffffffff16565b90505f61213e88611b5f601954866122f890919063ffffffff16565b90505f61215a89611b5f601a54876122f890919063ffffffff16565b90505f81836121698688612cbb565b6121739190612cbb565b61217d9190612cbb565b5f601881905560178190556019819055601a8190556007546040519293506001600160a01b031691859181818185875af1925050503d805f81146121dc576040519150601f19603f3d011682016040523d82523d5f602084013e6121e1565b606091505b5050600854604051919a506001600160a01b03169083905f81818185875af1925050503d805f811461222e576040519150601f19603f3d011682016040523d82523d5f602084013e612233565b606091505b5090995050871580159061224657505f81115b156122995761225588826125ae565b601854604080518981526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b039091169047905f81818185875af1925050503d805f81146122e3576040519150601f19603f3d011682016040523d82523d5f602084013e6122e8565b606091505b5050505050505050505050505050565b5f825f0361230757505f610999565b5f6123128385612b71565b90508261231f8583612b88565b14611ebe5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610894565b5f611ebe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061268b565b5f611ebe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e28565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061242b5761242b612bf4565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124cb9190612cce565b816001815181106124de576124de612bf4565b60200260200101906001600160a01b031690816001600160a01b031681525050612529307f00000000000000000000000000000000000000000000000000000000000000008461149f565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061257d9085905f90869030904290600401612ce9565b5f604051808303815f87803b158015612594575f80fd5b505af19250505080156125a5575060015b15611197575050565b6125d9307f00000000000000000000000000000000000000000000000000000000000000008461149f565b60405163f305d71960e01b8152306004820152602481018390525f60448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af19350505050801561267f575060408051601f3d908101601f1916820190925261267c91810190612d58565b60015b15611197575050505050565b5f81836126ab5760405162461bcd60e51b815260040161089491906126e6565b505f611e578486612b88565b6001600160a01b0381168114612076575f80fd5b5f602082840312156126db575f80fd5b8135611ebe816126b7565b5f6020808352835180828501525f5b81811015612711578581018301518582016040015282016126f5565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215612742575f80fd5b823561274d816126b7565b946020939093013593505050565b5f6020828403121561276b575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156127af576127af612772565b604052919050565b5f67ffffffffffffffff8211156127d0576127d0612772565b5060051b60200190565b5f82601f8301126127e9575f80fd5b813560206127fe6127f9836127b7565b612786565b82815260059290921b8401810191818101908684111561281c575f80fd5b8286015b848110156128375780358352918301918301612820565b509695505050505050565b5f8060408385031215612853575f80fd5b823567ffffffffffffffff8082111561286a575f80fd5b818501915085601f83011261287d575f80fd5b8135602061288d6127f9836127b7565b82815260059290921b840181019181810190898411156128ab575f80fd5b948201945b838610156128d25785356128c3816126b7565b825294820194908201906128b0565b965050860135925050808211156128e7575f80fd5b506128f4858286016127da565b9150509250929050565b5f805f60608486031215612910575f80fd5b833561291b816126b7565b9250602084013561292b816126b7565b929592945050506040919091013590565b8035801515811461294b575f80fd5b919050565b5f8060408385031215612961575f80fd5b823561296c816126b7565b915061297a6020840161293c565b90509250929050565b5f805f8060808587031215612996575f80fd5b5050823594602084013594506040840135936060013592509050565b5f602082840312156129c2575f80fd5b611ebe8261293c565b5f80604083850312156129dc575f80fd5b82356129e7816126b7565b915060208301356129f7816126b7565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612a4b57607f821691505b602082108103612a6957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115612abd57815f1904821115612aa357612aa3612a6f565b80851615612ab057918102915b93841c9390800290612a88565b509250929050565b5f82612ad357506001610999565b81612adf57505f610999565b8160018114612af55760028114612aff57612b1b565b6001915050610999565b60ff841115612b1057612b10612a6f565b50506001821b610999565b5060208310610133831016604e8410600b8410161715612b3e575081810a610999565b612b488383612a83565b805f1904821115612b5b57612b5b612a6f565b029392505050565b5f611ebe60ff841683612ac5565b808202811582820484141761099957610999612a6f565b5f82612ba257634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252602d908201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060408201526c6c6f776572207468616e20312560981b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612c1957612c19612a6f565b5060010190565b8082018082111561099957610999612a6f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561099957610999612a6f565b5f60208284031215612cde575f80fd5b8151611ebe816126b7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015612d375784516001600160a01b031683529383019391830191600101612d12565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612d6a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122006bcb6ecfa7aa8e8180d8331757a031f4e1599b0c78879795aa8191cf98682d464736f6c634300081400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0