0x60806040526100106012600a6101aa565b61001e90633b9aca006101bc565b5f9081556002556003805461ffff1916905534801561003b575f80fd5b50600180546001600160a01b0319163390811782555f805491815260046020526040808220839055925492516001600160a01b03939093169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916100a491815260200190565b60405180910390a36101d3565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610100578085048111156100e4576100e46100b1565b60018416156100f257908102905b60019390931c9280026100c9565b935093915050565b5f82610116575060016101a4565b8161012257505f6101a4565b816001811461013857600281146101425761015e565b60019150506101a4565b60ff841115610153576101536100b1565b50506001821b6101a4565b5060208310610133831016604e8410600b8410161715610181575081810a6101a4565b61018d5f1984846100c5565b805f19048211156101a0576101a06100b1565b0290505b92915050565b5f6101b58383610108565b9392505050565b80820281158282048414176101a4576101a46100b1565b6109ca806101e05f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806370a0823111610088578063a9059cbb11610063578063a9059cbb146101ca578063aa2ef0f5146101dd578063ca4b208b146101ef578063dd62ed3e1461021a575f80fd5b806370a08231146101a25780637a271284146101c157806395d89b41146100e9575f80fd5b80631f5e8f4c116100c35780631f5e8f4c1461015e57806323b872dd1461016b578063313ce5671461017e5780634f41253414610198575f80fd5b806306fdde03146100e9578063095ea7b31461012557806318160ddd14610148575b5f80fd5b61010f6040518060400160405280600781526020016670657065646f6760c81b81525081565b60405161011c919061073a565b60405180910390f35b61013861013336600461078a565b610244565b604051901515815260200161011c565b6101505f5481565b60405190815260200161011c565b6003546101389060ff1681565b6101386101793660046107b2565b6102b0565b610186601281565b60405160ff909116815260200161011c565b6101a061042b565b005b6101506101b03660046107ec565b60046020525f908152604090205481565b61015060025481565b6101386101d836600461078a565b6104cd565b60035461013890610100900460ff1681565b600154610202906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b61015061022836600461080c565b600560209081525f928352604080842090915290825290205481565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061029e9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f908152600460205260408120548211156103135760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064015b60405180910390fd5b6001600160a01b0384165f90815260056020908152604080832033845290915290205482111561037a5760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b604482015260640161030a565b6001546001600160a01b0385811691161480159061039a575060035460ff165b156103de5760405162461bcd60e51b8152602060048201526014602482015273151c985b9cd9995c9cc81c995cdd1c9a58dd195960621b604482015260640161030a565b6001600160a01b0384165f90815260056020908152604080832033845290915281208054849290610410908490610851565b909155506104219050848484610597565b5060019392505050565b6001546001600160a01b031633146104945760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920646576656c6f7065722063616e2072656e6f756e6365207065726d60448201526534b9b9b4b7b760d11b606482015260840161030a565b6003805461ff0019166101001790556040517fea851fe3f673a962c1779e543950cb03052bdbc70ba5f47247a6886dde2d9cba905f90a1565b335f908152600460205260408120548211156105225760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015260640161030a565b6001546001600160a01b0316331480159061053f575060035460ff165b156105835760405162461bcd60e51b8152602060048201526014602482015273151c985b9cd9995c9cc81c995cdd1c9a58dd195960621b604482015260640161030a565b61058e338484610597565b50600192915050565b6001600160a01b0383165f90815260046020526040812080548392906105be908490610851565b90915550506001600160a01b0382165f90815260046020526040812080548392906105ea908490610864565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161063691815260200190565b60405180910390a36001546001600160a01b03908116908416036106b05760028054905f61066383610877565b91905055506002805411156106b0576001546106a2906001600160a01b031661068e6012600a610972565b61069d9064174876e80061097d565b6106b5565b6003805460ff191660011790555b505050565b805f808282546106c59190610864565b90915550506001600160a01b0382165f90815260046020526040812080548392906106f1908490610864565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610785575f80fd5b919050565b5f806040838503121561079b575f80fd5b6107a48361076f565b946020939093013593505050565b5f805f606084860312156107c4575f80fd5b6107cd8461076f565b92506107db6020850161076f565b929592945050506040919091013590565b5f602082840312156107fc575f80fd5b6108058261076f565b9392505050565b5f806040838503121561081d575f80fd5b6108268361076f565b91506108346020840161076f565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102aa576102aa61083d565b808201808211156102aa576102aa61083d565b5f600182016108885761088861083d565b5060010190565b6001815b60018411156108ca578085048111156108ae576108ae61083d565b60018416156108bc57908102905b60019390931c928002610893565b935093915050565b5f826108e0575060016102aa565b816108ec57505f6102aa565b8160018114610902576002811461090c57610928565b60019150506102aa565b60ff84111561091d5761091d61083d565b50506001821b6102aa565b5060208310610133831016604e8410600b841016171561094b575081810a6102aa565b6109575f19848461088f565b805f190482111561096a5761096a61083d565b029392505050565b5f61080583836108d2565b80820281158282048414176102aa576102aa61083d56fea2646970667358221220b8bdf1f663437e4de067787c062f9edf536a0f3afd85611df4a06e4695aa7f4964736f6c634300081a0033