60806040526064620000146012600a620004b4565b62000024906305f5e100620004cb565b62000031906002620004cb565b6200003d9190620004e5565b600555610320620000516012600a620004b4565b62000061906305f5e100620004cb565b6200006d9190620004e5565b6006556064620000806012600a620004b4565b62000090906305f5e100620004cb565b6200009c9190620004e5565b6007556008805461ff001916610100179055600f6009556019600a55348015620000c4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b80546001600160a01b03199081163317909155600c8054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790555f819052600160208181527f12d4ae10b86c0fdfdbbd2bb2dffa7d211f4b1a0678afa5427bf6325849448125805460ff19169092179091556040805163c45a015560e01b8152905163c45a0155926004808401939192918290030181865afa158015620001a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ce919062000505565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000254919062000505565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200029f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c5919062000505565b600d80546001600160a01b0319166001600160a01b0392909216919091179055305f908152600160208190526040808320805460ff199081168417909155338452922080549092161790556200031e6012600a620004b4565b6200032e906305f5e100620004cb565b335f90815260036020526040902055620003453390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200037e6012600a620004b4565b6200038e906305f5e100620004cb565b60405190815260200160405180910390a36200052d565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f957815f1904821115620003dd57620003dd620003a5565b80851615620003eb57918102915b93841c9390800290620003be565b509250929050565b5f826200041157506001620004ae565b816200041f57505f620004ae565b8160018114620004385760028114620004435762000463565b6001915050620004ae565b60ff841115620004575762000457620003a5565b50506001821b620004ae565b5060208310610133831016604e8410600b841016171562000488575081810a620004ae565b620004948383620003b9565b805f1904821115620004aa57620004aa620003a5565b0290505b92915050565b5f620004c460ff84168362000401565b9392505050565b8082028115828204841417620004ae57620004ae620003a5565b5f826200050057634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000516575f80fd5b81516001600160a01b0381168114620004c4575f80fd5b6111c8806200053b5f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063d257b34f11610062578063d257b34f14610311578063dd62ed3e14610330578063de7cf79914610374578063e4d1a87414610389578063fcfff16f1461039e575f80fd5b8063751039fc146102995780638da5cb5b146102ad57806395d89b4114610129578063a9059cbb146102d3578063c0246668146102f2575f80fd5b8063313ce567116100e3578063313ce567146101f85780635d0044ca146102135780636db794371461023257806370a0823114610251578063715018a614610285575f80fd5b806306fdde0314610129578063095ea7b31461016757806318160ddd1461019657806323b872dd146101b85780632d61bc8d146101d7575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201825260078152664e56494449414960c81b6020820152905161015e9190610d83565b60405180910390f35b348015610172575f80fd5b50610186610181366004610de6565b6103b2565b604051901515815260200161015e565b3480156101a1575f80fd5b506101aa6103c8565b60405190815260200161015e565b3480156101c3575f80fd5b506101866101d2366004610e10565b6103e8565b3480156101e2575f80fd5b506101f66101f1366004610e62565b61044f565b005b348015610203575f80fd5b506040516012815260200161015e565b34801561021e575f80fd5b506101f661022d366004610e7b565b61049b565b34801561023d575f80fd5b506101f661024c366004610e92565b6104fb565b34801561025c575f80fd5b506101aa61026b366004610eb2565b6001600160a01b03165f9081526003602052604090205490565b348015610290575f80fd5b506101f66105c4565b3480156102a4575f80fd5b506101f6610635565b3480156102b8575f80fd5b505f546040516001600160a01b03909116815260200161015e565b3480156102de575f80fd5b506101866102ed366004610de6565b610678565b3480156102fd575f80fd5b506101f661030c366004610ecd565b610684565b34801561031c575f80fd5b506101f661032b366004610e7b565b6106d7565b34801561033b575f80fd5b506101aa61034a366004610f00565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561037f575f80fd5b506101aa600a5481565b348015610394575f80fd5b506101aa60095481565b3480156103a9575f80fd5b506101f6610705565b5f6103be33848461073d565b5060015b92915050565b5f6103d56012600a61102b565b6103e3906305f5e100611039565b905090565b5f6103f484848461079d565b61044584336104408560405180606001604052806028815260200161116b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610b6f565b61073d565b5060019392505050565b5f546001600160a01b031633146104815760405162461bcd60e51b815260040161047890611050565b60405180910390fd5b600880549115156101000261ff0019909216919091179055565b5f546001600160a01b031633146104c45760405162461bcd60e51b815260040161047890611050565b6101f46104d36012600a61102b565b6104e1906305f5e100611039565b6104eb9190611085565b8110156104f6575f80fd5b600555565b5f546001600160a01b031633146105245760405162461bcd60e51b815260040161047890611050565b6009829055600a81905560198211156105775760405162461bcd60e51b81526020600482015260156024820152744f766572206d617820616c6c6f776564206665657360581b6044820152606401610478565b60198111156105c05760405162461bcd60e51b81526020600482015260156024820152744f766572206d617820616c6c6f776564206665657360581b6044820152606401610478565b5050565b5f546001600160a01b031633146105ed5760405162461bcd60e51b815260040161047890611050565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461065e5760405162461bcd60e51b815260040161047890611050565b61066a6012600a61102b565b6104f6906305f5e100611039565b5f6103be33848461079d565b5f546001600160a01b031633146106ad5760405162461bcd60e51b815260040161047890611050565b6001600160a01b03919091165f908152600160205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146107005760405162461bcd60e51b815260040161047890611050565b600655565b5f546001600160a01b0316331461072e5760405162461bcd60e51b815260040161047890611050565b6004805460ff19166001179055565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8082116107a9575f80fd5b6001600160a01b0384165f9081526001602052604090205460ff161580156107e957506001600160a01b0383165f9081526001602052604090205460ff16155b801561080257505f546001600160a01b03858116911614155b15610a445760045460ff16610815575f80fd5b6064600954836108259190611039565b61082f9190611085565b600d549091506001600160a01b038481169116146108b45760055482610869856001600160a01b03165f9081526003602052604090205490565b61087391906110a4565b11156108b45760405162461bcd60e51b815260206004820152601060248201526f4f766572206d61782077616c6c65742160801b6044820152606401610478565b600d546001600160a01b039081169084160361090d576064600a54836108da9190611039565b6108e49190611085565b90506108f26012600a61102b565b610900906305f5e100611039565b600654111561090d575f80fd5b600d546001600160a01b03908116908516036109905760055482610945856001600160a01b03165f9081526003602052604090205490565b61094f91906110a4565b11156109905760405162461bcd60e51b815260206004820152601060248201526f4f766572206d61782077616c6c65742160801b6044820152606401610478565b305f9081526003602052604090205460085460ff161580156109bf5750600d546001600160a01b038581169116145b80156109d25750600854610100900460ff165b80156109df575060065481115b15610a4257610a016109fc846109f784600754610ba7565b610ba7565b610bbe565b478015610a4057600b546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610a3e573d5f803e3d5ffd5b505b505b505b8015610abc57305f90815260036020526040902054610a639082610d25565b305f81815260036020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ab39085815260200190565b60405180910390a35b6001600160a01b0384165f9081526003602052604081208054849290610ae39084906110b7565b90915550610af3905081836110b7565b6001600160a01b0384165f9081526003602052604081208054909190610b1a9084906110a4565b90915550506001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610b5884866110b7565b60405190815260200160405180910390a350505050565b5f8184841115610b925760405162461bcd60e51b81526004016104789190610d83565b505f610b9e84866110b7565b95945050505050565b5f818311610bb55782610bb7565b815b9392505050565b6008805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610bfe57610bfe6110ca565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7991906110de565b81600181518110610c8c57610c8c6110ca565b6001600160a01b039283166020918202929092010152600c54610cb2913091168461073d565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610cea9085905f908690309042906004016110f9565b5f604051808303815f87803b158015610d01575f80fd5b505af1158015610d13573d5f803e3d5ffd5b50506008805460ff1916905550505050565b5f80610d3183856110a4565b905083811015610bb75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610478565b5f602080835283518060208501525f5b81811015610daf57858101830151858201604001528201610d93565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610de3575f80fd5b50565b5f8060408385031215610df7575f80fd5b8235610e0281610dcf565b946020939093013593505050565b5f805f60608486031215610e22575f80fd5b8335610e2d81610dcf565b92506020840135610e3d81610dcf565b929592945050506040919091013590565b80358015158114610e5d575f80fd5b919050565b5f60208284031215610e72575f80fd5b610bb782610e4e565b5f60208284031215610e8b575f80fd5b5035919050565b5f8060408385031215610ea3575f80fd5b50508035926020909101359150565b5f60208284031215610ec2575f80fd5b8135610bb781610dcf565b5f8060408385031215610ede575f80fd5b8235610ee981610dcf565b9150610ef760208401610e4e565b90509250929050565b5f8060408385031215610f11575f80fd5b8235610f1c81610dcf565b91506020830135610f2c81610dcf565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610f8557815f1904821115610f6b57610f6b610f37565b80851615610f7857918102915b93841c9390800290610f50565b509250929050565b5f82610f9b575060016103c2565b81610fa757505f6103c2565b8160018114610fbd5760028114610fc757610fe3565b60019150506103c2565b60ff841115610fd857610fd8610f37565b50506001821b6103c2565b5060208310610133831016604e8410600b8410161715611006575081810a6103c2565b6110108383610f4b565b805f190482111561102357611023610f37565b029392505050565b5f610bb760ff841683610f8d565b80820281158282048414176103c2576103c2610f37565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261109f57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103c2576103c2610f37565b818103818111156103c2576103c2610f37565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156110ee575f80fd5b8151610bb781610dcf565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156111495784516001600160a01b031683529383019391830191600101611124565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220075c73268e96cf38e10da49d2cf306c0a90ab94d1e9f2035340ac2070142aff564736f6c63430008180033