0x60806040526004361061021d5760003560e01c806377b54bad11610123578063b2bdfa7b116100ab578063d51ed1c81161006f578063d51ed1c814610614578063dd62ed3e14610634578063f2fde38b1461067a578063f42938901461069a578063f887ea40146106af57600080fd5b8063b2bdfa7b14610574578063b44a14b614610594578063b70143c9146105b4578063bc337182146105d4578063d405ae8f146105f457600080fd5b80638a8c523c116100f25780638a8c523c146105015780638da5cb5b1461051657806395d89b4114610274578063a8aa1b3114610534578063a9059cbb1461055457600080fd5b806377b54bad1461048357806378109e54146104a35780637d1db4a5146104b9578063893d20e8146104cf57600080fd5b80631df4ccfc116101a6578063571ac8b011610175578063571ac8b0146103d75780635d0044ca146103f75780636ddd17131461041757806370a0823114610438578063715018a61461046e57600080fd5b80631df4ccfc1461037057806323b872dd146103865780632b112e49146103a6578063313ce567146103bb57600080fd5b8063095ea7b3116101ed578063095ea7b3146102db5780631161ae39146102fb57806318160ddd1461031b5780631d0f2c99146103305780631da1db5e1461035057600080fd5b8062fe0d0f146102295780630445b6671461024b57806306fdde031461027457806308fd3d05146102aa57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b50610249610244366004611887565b6106cf565b005b34801561025757600080fd5b50610261601f5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b506040805180820182526007815266534849424f594160c81b6020820152905161026b91906118a0565b3480156102b657600080fd5b50601e546102cb90600160a01b900460ff1681565b604051901515815260200161026b565b3480156102e757600080fd5b506102cb6102f636600461190a565b61072b565b34801561030757600080fd5b506102cb610316366004611934565b610798565b34801561032757600080fd5b50600454610261565b34801561033c57600080fd5b5061024961034b366004611934565b6107ac565b34801561035c57600080fd5b5061024961036b366004611887565b6107e1565b34801561037c57600080fd5b5061026160105481565b34801561039257600080fd5b506102cb6103a1366004611956565b61085f565b3480156103b257600080fd5b50610261610921565b3480156103c757600080fd5b506040516012815260200161026b565b3480156103e357600080fd5b506102cb6103f2366004611992565b610973565b34801561040357600080fd5b50610249610412366004611887565b610981565b34801561042357600080fd5b50601e546102cb90600160a81b900460ff1681565b34801561044457600080fd5b50610261610453366004611992565b6001600160a01b031660009081526007602052604090205490565b34801561047a57600080fd5b506102496109c7565b34801561048f57600080fd5b506102cb61049e36600461190a565b610a3b565b3480156104af57600080fd5b5061026160065481565b3480156104c557600080fd5b5061026160055481565b3480156104db57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561050d57600080fd5b50610249610b3b565b34801561052257600080fd5b506000546001600160a01b03166104e9565b34801561054057600080fd5b50601e546104e9906001600160a01b031681565b34801561056057600080fd5b506102cb61056f36600461190a565b610b7a565b34801561058057600080fd5b506000546104e9906001600160a01b031681565b3480156105a057600080fd5b506102496105af366004611934565b610b87565b3480156105c057600080fd5b506102496105cf366004611887565b610bbc565b3480156105e057600080fd5b506102496105ef366004611887565b610c1f565b34801561060057600080fd5b5061024961060f3660046119bb565b610c65565b34801561062057600080fd5b5061026161062f366004611887565b610cb1565b34801561064057600080fd5b5061026161064f3660046119d9565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561068657600080fd5b50610249610695366004611992565b610cf2565b3480156106a657600080fd5b50610249610ddc565b3480156106bb57600080fd5b50601c546104e9906001600160a01b031681565b61267a8110156107265760405162461bcd60e51b815260206004820181905260248201527f506c6561736520456e74657220436f7272656374205061697220416d6f756e7460448201526064015b60405180910390fd5b601255565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107869086815260200190565b60405180910390a35060015b92915050565b6000826107a483610cb1565b119392505050565b6000546001600160a01b031633146107d65760405162461bcd60e51b815260040161071d90611a0c565b601a91909155601b55565b6000546001600160a01b0316331461080b5760405162461bcd60e51b815260040161071d90611a0c565b60165447906001600160a01b03166108fc60646108288585611a57565b6108329190611a6e565b6040518115909202916000818181858888f1935050505015801561085a573d6000803e3d6000fd5b505050565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000191461090c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546108e7918490610f15565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610917848484610f4f565b90505b9392505050565b6003546001600160a01b031660009081526007602052604081205461096e906002546001600160a01b031660009081526007602052604090205461096890600454906110be565b906110be565b905090565b60006107928260001961072b565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161071d90611a0c565b6109b76012600a611b74565b6109c19082611a57565b60065550565b6000546001600160a01b031633146109f15760405162461bcd60e51b815260040161071d90611a0c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600a602052604081205460ff16610a5757600080fd5b81600003610aca576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac79190611b83565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091a9190611b9c565b6000546001600160a01b03163314610b655760405162461bcd60e51b815260040161071d90611a0c565b601e805460ff60a01b1916600160a01b179055565b600061091a338484610f4f565b6000546001600160a01b03163314610bb15760405162461bcd60e51b815260040161071d90611a0c565b601391909155601455565b6000546001600160a01b03163314610be65760405162461bcd60e51b815260040161071d90611a0c565b3060009081526007602052604081205490610c0c6064610c068486610e51565b90610ed3565b9050610c19303383611100565b50505050565b6000546001600160a01b03163314610c495760405162461bcd60e51b815260040161071d90611a0c565b610c556012600a611b74565b610c5f9082611a57565b60055550565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b815260040161071d90611a0c565b601e8054921515600160a81b0260ff60a81b1990931692909217909155601f55565b6000610792610cbe610921565b601e546001600160a01b0316600090815260076020526040902054610c0690610ceb906002905b90610e51565b8590610e51565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b815260040161071d90611a0c565b6001600160a01b038116610d815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e065760405162461bcd60e51b815260040161071d90611a0c565b336000908152600a602052604090205460ff16610e2257600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610e4e573d6000803e3d6000fd5b50565b600082600003610e6357506000610792565b6000610e6f8385611a57565b905082610e7c8583611a6e565b1461091a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161071d565b600061091a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111d4565b60008184841115610f395760405162461bcd60e51b815260040161071d91906118a0565b506000610f468486611bb9565b95945050505050565b60205460009060ff1615610f6f57610f68848484611100565b905061091a565b610f798483611202565b610f8161126f565b15610f8e57610f8e6112c5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610fe0918490610f15565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff168061102d57506001600160a01b03841660009081526009602052604090205460ff165b6110415761103c8584866116ab565b611043565b825b6001600160a01b0385166000908152600760205260409020549091506110699082611828565b6001600160a01b038086166000818152600760205260409081902093909355915190871690600080516020611c95833981519152906110ab9085815260200190565b60405180910390a3506001949350505050565b600061091a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f15565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611151918490610f15565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546111809083611828565b6001600160a01b038085166000818152600760205260409081902093909355915190861690600080516020611c95833981519152906111c29086815260200190565b60405180910390a35060019392505050565b600081836111f55760405162461bcd60e51b815260040161071d91906118a0565b506000610f468486611a6e565b6005548111158061122b57506001600160a01b0382166000908152600a602052604090205460ff165b61126b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161071d565b5050565b601e546000906001600160a01b03163314801590611290575060205460ff16155b80156112a55750601e54600160a81b900460ff165b801561096e575050601f5430600090815260076020526040902054101590565b6020805460ff19166001179055601a54601b546000916112e491610798565b6112f057600b546112f3565b60005b905060006113176002610c06601054610c0686601f54610e5190919063ffffffff16565b9050600061133082601f546110be90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061136a5761136a611bcc565b6001600160a01b039283166020918202929092010152600180548351921691839190811061139a5761139a611bcc565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac947906113e4908690600090879030904290600401611be2565b600060405180830381600087803b1580156113fe57600080fd5b505af1158015611412573d6000803e3d6000fd5b50505050600061142b82476110be90919063ffffffff16565b9050600061144661143d886002610ed3565b601054906110be565b9050600061145b6002610c068481878d610e51565b9050600061147883610c06600c5487610e5190919063ffffffff16565b9050600061149584610c06600e5488610e5190919063ffffffff16565b905060006114b285610c06600d5489610e5190919063ffffffff16565b6016546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611504576040519150601f19603f3d011682016040523d82523d6000602084013e611509565b606091505b50506017546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611559576040519150601f19603f3d011682016040523d82523d6000602084013e61155e565b606091505b50506018546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146115ae576040519150601f19603f3d011682016040523d82523d6000602084013e6115b3565b606091505b5060009250508b15905061169357601c5460155460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611631573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116569190611c53565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506020805460ff1916905550505050505050505050565b601454601e54600091906001600160a01b03908116908416036116d157506012546116ec565b601e546001600160a01b03908116908616036116ec57506013545b600061171960115460646117009190611a57565b610c0684610ce56010548a610e5190919063ffffffff16565b90506000611738601054610c06600f5485610e5190919063ffffffff16565b9050600061174683836110be565b306000908152600760205260409020549091506117639082611828565b30600090815260076020526040808220929092556019546001600160a01b0316815220546117919083611828565b6019546001600160a01b0390811660009081526007602090815260409182902093909355518381523092918b1691600080516020611c95833981519152910160405180910390a38115611812576019546040518381526001600160a01b03918216918a1690600080516020611c958339815191529060200160405180910390a35b61181c87846110be565b98975050505050505050565b6000806118358385611c81565b90508381101561091a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071d565b60006020828403121561189957600080fd5b5035919050565b600060208083528351808285015260005b818110156118cd578581018301518582016040015282016118b1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461190557600080fd5b919050565b6000806040838503121561191d57600080fd5b611926836118ee565b946020939093013593505050565b6000806040838503121561194757600080fd5b50508035926020909101359150565b60008060006060848603121561196b57600080fd5b611974846118ee565b9250611982602085016118ee565b9150604084013590509250925092565b6000602082840312156119a457600080fd5b61091a826118ee565b8015158114610e4e57600080fd5b600080604083850312156119ce57600080fd5b8235611926816119ad565b600080604083850312156119ec57600080fd5b6119f5836118ee565b9150611a03602084016118ee565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079257610792611a41565b600082611a8b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611acb578160001904821115611ab157611ab1611a41565b80851615611abe57918102915b93841c9390800290611a95565b509250929050565b600082611ae257506001610792565b81611aef57506000610792565b8160018114611b055760028114611b0f57611b2b565b6001915050610792565b60ff841115611b2057611b20611a41565b50506001821b610792565b5060208310610133831016604e8410600b8410161715611b4e575081810a610792565b611b588383611a90565b8060001904821115611b6c57611b6c611a41565b029392505050565b600061091a60ff841683611ad3565b600060208284031215611b9557600080fd5b5051919050565b600060208284031215611bae57600080fd5b815161091a816119ad565b8181038181111561079257610792611a41565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c325784516001600160a01b031683529383019391830191600101611c0d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c6857600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561079257610792611a4156feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122047e41b80077118f92f15eb4dc1e0143de8f115094a94c071aef47c0b0114d91f64736f6c63430008110033
0x6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326012600a620006c7565b620000439064e8d4a51000620006d8565b6004556200007d60646200006960036004546200049760201b62000e511790919060201c565b6200052e60201b62000ed31790919060201c565b600555620000a360646200006960036004546200049760201b62000e511790919060201c565b6006556000600b556001600c556000600d556000600e556000600f55600f54600d54600b54600c54600e54620000da9190620006f2565b620000e69190620006f2565b620000f29190620006f2565b620000fe9190620006f2565b60105560646011819055601281905560138190556014818155601a819055601b91909155601e805461ffff60a01b1916600160a81b1790556004546103e891620001499190620006d8565b62000155919062000708565b601f553480156200016557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200020c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023291906200072b565b600180546001600160a01b0319166001600160a01b03928316179055601c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b791906200072b565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000309573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032f91906200072b565b601e80546001600160a01b039283166001600160a01b031991821681178355601d805483169091179055306000818152600860209081526040808320601c5488168452825280832060001990553380845260098352818420805460ff199081166001908117909255601780548b1687528487208054831684179055838752600a8652848720805483168417905598548a168652838620805482168317905588548a1686528386208054821683179055601680548b168752848720805483168417905596865283862080549091169091179055601580548716821790558454861673267ffcc5d1faba3923eab583fdf73c38b7bb92a01790945585548516841790955560188054851684179055600254601980549095169616959095179092556004548183526007855283832081905592519283529290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620007a6565b600082600003620004ab5750600062000528565b6000620004b98385620006d8565b905082620004c8858362000708565b14620005255760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200052583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200057860201b60201c565b600081836200059c5760405162461bcd60e51b81526004016200051c919062000756565b506000620005ab848662000708565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200060b578160001904821115620005ef57620005ef620005b4565b80851615620005fd57918102915b93841c9390800290620005cf565b509250929050565b600082620006245750600162000528565b81620006335750600062000528565b81600181146200064c5760028114620006575762000677565b600191505062000528565b60ff8411156200066b576200066b620005b4565b50506001821b62000528565b5060208310610133831016604e8410600b84101617156200069c575081810a62000528565b620006a88383620005ca565b8060001904821115620006bf57620006bf620005b4565b029392505050565b60006200052560ff84168362000613565b8082028115828204841417620005285762000528620005b4565b80820180821115620005285762000528620005b4565b6000826200072657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200073e57600080fd5b81516001600160a01b03811681146200052557600080fd5b600060208083528351808285015260005b81811015620007855785810183015185820160400152820162000767565b506000604082860101526040601f19601f8301168501019250505092915050565b611cea80620007b66000396000f3fe60806040526004361061021d5760003560e01c806377b54bad11610123578063b2bdfa7b116100ab578063d51ed1c81161006f578063d51ed1c814610614578063dd62ed3e14610634578063f2fde38b1461067a578063f42938901461069a578063f887ea40146106af57600080fd5b8063b2bdfa7b14610574578063b44a14b614610594578063b70143c9146105b4578063bc337182146105d4578063d405ae8f146105f457600080fd5b80638a8c523c116100f25780638a8c523c146105015780638da5cb5b1461051657806395d89b4114610274578063a8aa1b3114610534578063a9059cbb1461055457600080fd5b806377b54bad1461048357806378109e54146104a35780637d1db4a5146104b9578063893d20e8146104cf57600080fd5b80631df4ccfc116101a6578063571ac8b011610175578063571ac8b0146103d75780635d0044ca146103f75780636ddd17131461041757806370a0823114610438578063715018a61461046e57600080fd5b80631df4ccfc1461037057806323b872dd146103865780632b112e49146103a6578063313ce567146103bb57600080fd5b8063095ea7b3116101ed578063095ea7b3146102db5780631161ae39146102fb57806318160ddd1461031b5780631d0f2c99146103305780631da1db5e1461035057600080fd5b8062fe0d0f146102295780630445b6671461024b57806306fdde031461027457806308fd3d05146102aa57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b50610249610244366004611887565b6106cf565b005b34801561025757600080fd5b50610261601f5481565b6040519081526020015b60405180910390f35b34801561028057600080fd5b506040805180820182526007815266534849424f594160c81b6020820152905161026b91906118a0565b3480156102b657600080fd5b50601e546102cb90600160a01b900460ff1681565b604051901515815260200161026b565b3480156102e757600080fd5b506102cb6102f636600461190a565b61072b565b34801561030757600080fd5b506102cb610316366004611934565b610798565b34801561032757600080fd5b50600454610261565b34801561033c57600080fd5b5061024961034b366004611934565b6107ac565b34801561035c57600080fd5b5061024961036b366004611887565b6107e1565b34801561037c57600080fd5b5061026160105481565b34801561039257600080fd5b506102cb6103a1366004611956565b61085f565b3480156103b257600080fd5b50610261610921565b3480156103c757600080fd5b506040516012815260200161026b565b3480156103e357600080fd5b506102cb6103f2366004611992565b610973565b34801561040357600080fd5b50610249610412366004611887565b610981565b34801561042357600080fd5b50601e546102cb90600160a81b900460ff1681565b34801561044457600080fd5b50610261610453366004611992565b6001600160a01b031660009081526007602052604090205490565b34801561047a57600080fd5b506102496109c7565b34801561048f57600080fd5b506102cb61049e36600461190a565b610a3b565b3480156104af57600080fd5b5061026160065481565b3480156104c557600080fd5b5061026160055481565b3480156104db57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026b565b34801561050d57600080fd5b50610249610b3b565b34801561052257600080fd5b506000546001600160a01b03166104e9565b34801561054057600080fd5b50601e546104e9906001600160a01b031681565b34801561056057600080fd5b506102cb61056f36600461190a565b610b7a565b34801561058057600080fd5b506000546104e9906001600160a01b031681565b3480156105a057600080fd5b506102496105af366004611934565b610b87565b3480156105c057600080fd5b506102496105cf366004611887565b610bbc565b3480156105e057600080fd5b506102496105ef366004611887565b610c1f565b34801561060057600080fd5b5061024961060f3660046119bb565b610c65565b34801561062057600080fd5b5061026161062f366004611887565b610cb1565b34801561064057600080fd5b5061026161064f3660046119d9565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561068657600080fd5b50610249610695366004611992565b610cf2565b3480156106a657600080fd5b50610249610ddc565b3480156106bb57600080fd5b50601c546104e9906001600160a01b031681565b61267a8110156107265760405162461bcd60e51b815260206004820181905260248201527f506c6561736520456e74657220436f7272656374205061697220416d6f756e7460448201526064015b60405180910390fd5b601255565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107869086815260200190565b60405180910390a35060015b92915050565b6000826107a483610cb1565b119392505050565b6000546001600160a01b031633146107d65760405162461bcd60e51b815260040161071d90611a0c565b601a91909155601b55565b6000546001600160a01b0316331461080b5760405162461bcd60e51b815260040161071d90611a0c565b60165447906001600160a01b03166108fc60646108288585611a57565b6108329190611a6e565b6040518115909202916000818181858888f1935050505015801561085a573d6000803e3d6000fd5b505050565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000191461090c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546108e7918490610f15565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610917848484610f4f565b90505b9392505050565b6003546001600160a01b031660009081526007602052604081205461096e906002546001600160a01b031660009081526007602052604090205461096890600454906110be565b906110be565b905090565b60006107928260001961072b565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161071d90611a0c565b6109b76012600a611b74565b6109c19082611a57565b60065550565b6000546001600160a01b031633146109f15760405162461bcd60e51b815260040161071d90611a0c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336000908152600a602052604081205460ff16610a5757600080fd5b81600003610aca576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac79190611b83565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091a9190611b9c565b6000546001600160a01b03163314610b655760405162461bcd60e51b815260040161071d90611a0c565b601e805460ff60a01b1916600160a01b179055565b600061091a338484610f4f565b6000546001600160a01b03163314610bb15760405162461bcd60e51b815260040161071d90611a0c565b601391909155601455565b6000546001600160a01b03163314610be65760405162461bcd60e51b815260040161071d90611a0c565b3060009081526007602052604081205490610c0c6064610c068486610e51565b90610ed3565b9050610c19303383611100565b50505050565b6000546001600160a01b03163314610c495760405162461bcd60e51b815260040161071d90611a0c565b610c556012600a611b74565b610c5f9082611a57565b60055550565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b815260040161071d90611a0c565b601e8054921515600160a81b0260ff60a81b1990931692909217909155601f55565b6000610792610cbe610921565b601e546001600160a01b0316600090815260076020526040902054610c0690610ceb906002905b90610e51565b8590610e51565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b815260040161071d90611a0c565b6001600160a01b038116610d815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e065760405162461bcd60e51b815260040161071d90611a0c565b336000908152600a602052604090205460ff16610e2257600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610e4e573d6000803e3d6000fd5b50565b600082600003610e6357506000610792565b6000610e6f8385611a57565b905082610e7c8583611a6e565b1461091a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161071d565b600061091a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111d4565b60008184841115610f395760405162461bcd60e51b815260040161071d91906118a0565b506000610f468486611bb9565b95945050505050565b60205460009060ff1615610f6f57610f68848484611100565b905061091a565b610f798483611202565b610f8161126f565b15610f8e57610f8e6112c5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610fe0918490610f15565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff168061102d57506001600160a01b03841660009081526009602052604090205460ff165b6110415761103c8584866116ab565b611043565b825b6001600160a01b0385166000908152600760205260409020549091506110699082611828565b6001600160a01b038086166000818152600760205260409081902093909355915190871690600080516020611c95833981519152906110ab9085815260200190565b60405180910390a3506001949350505050565b600061091a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f15565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611151918490610f15565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546111809083611828565b6001600160a01b038085166000818152600760205260409081902093909355915190861690600080516020611c95833981519152906111c29086815260200190565b60405180910390a35060019392505050565b600081836111f55760405162461bcd60e51b815260040161071d91906118a0565b506000610f468486611a6e565b6005548111158061122b57506001600160a01b0382166000908152600a602052604090205460ff165b61126b5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161071d565b5050565b601e546000906001600160a01b03163314801590611290575060205460ff16155b80156112a55750601e54600160a81b900460ff165b801561096e575050601f5430600090815260076020526040902054101590565b6020805460ff19166001179055601a54601b546000916112e491610798565b6112f057600b546112f3565b60005b905060006113176002610c06601054610c0686601f54610e5190919063ffffffff16565b9050600061133082601f546110be90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061136a5761136a611bcc565b6001600160a01b039283166020918202929092010152600180548351921691839190811061139a5761139a611bcc565b6001600160a01b039283166020918202929092010152601c5460405163791ac94760e01b81524792919091169063791ac947906113e4908690600090879030904290600401611be2565b600060405180830381600087803b1580156113fe57600080fd5b505af1158015611412573d6000803e3d6000fd5b50505050600061142b82476110be90919063ffffffff16565b9050600061144661143d886002610ed3565b601054906110be565b9050600061145b6002610c068481878d610e51565b9050600061147883610c06600c5487610e5190919063ffffffff16565b9050600061149584610c06600e5488610e5190919063ffffffff16565b905060006114b285610c06600d5489610e5190919063ffffffff16565b6016546040519192506000916001600160a01b039091169085908381818185875af1925050503d8060008114611504576040519150601f19603f3d011682016040523d82523d6000602084013e611509565b606091505b50506017546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114611559576040519150601f19603f3d011682016040523d82523d6000602084013e61155e565b606091505b50506018546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146115ae576040519150601f19603f3d011682016040523d82523d6000602084013e6115b3565b606091505b5060009250508b15905061169357601c5460155460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611631573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116569190611c53565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506020805460ff1916905550505050505050505050565b601454601e54600091906001600160a01b03908116908416036116d157506012546116ec565b601e546001600160a01b03908116908616036116ec57506013545b600061171960115460646117009190611a57565b610c0684610ce56010548a610e5190919063ffffffff16565b90506000611738601054610c06600f5485610e5190919063ffffffff16565b9050600061174683836110be565b306000908152600760205260409020549091506117639082611828565b30600090815260076020526040808220929092556019546001600160a01b0316815220546117919083611828565b6019546001600160a01b0390811660009081526007602090815260409182902093909355518381523092918b1691600080516020611c95833981519152910160405180910390a38115611812576019546040518381526001600160a01b03918216918a1690600080516020611c958339815191529060200160405180910390a35b61181c87846110be565b98975050505050505050565b6000806118358385611c81565b90508381101561091a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071d565b60006020828403121561189957600080fd5b5035919050565b600060208083528351808285015260005b818110156118cd578581018301518582016040015282016118b1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461190557600080fd5b919050565b6000806040838503121561191d57600080fd5b611926836118ee565b946020939093013593505050565b6000806040838503121561194757600080fd5b50508035926020909101359150565b60008060006060848603121561196b57600080fd5b611974846118ee565b9250611982602085016118ee565b9150604084013590509250925092565b6000602082840312156119a457600080fd5b61091a826118ee565b8015158114610e4e57600080fd5b600080604083850312156119ce57600080fd5b8235611926816119ad565b600080604083850312156119ec57600080fd5b6119f5836118ee565b9150611a03602084016118ee565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761079257610792611a41565b600082611a8b57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611acb578160001904821115611ab157611ab1611a41565b80851615611abe57918102915b93841c9390800290611a95565b509250929050565b600082611ae257506001610792565b81611aef57506000610792565b8160018114611b055760028114611b0f57611b2b565b6001915050610792565b60ff841115611b2057611b20611a41565b50506001821b610792565b5060208310610133831016604e8410600b8410161715611b4e575081810a610792565b611b588383611a90565b8060001904821115611b6c57611b6c611a41565b029392505050565b600061091a60ff841683611ad3565b600060208284031215611b9557600080fd5b5051919050565b600060208284031215611bae57600080fd5b815161091a816119ad565b8181038181111561079257610792611a41565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c325784516001600160a01b031683529383019391830191600101611c0d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611c6857600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561079257610792611a4156feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122047e41b80077118f92f15eb4dc1e0143de8f115094a94c071aef47c0b0114d91f64736f6c63430008110033