0x60806040526004361061009d575f3560e01c806345aff9be1161006257806345aff9be1461015f5780635066b0341461018057806370a082311461019f57806395d89b41146101d3578063a9059cbb146101e7578063dd62ed3e14610206575f80fd5b806306fdde03146100a8578063095ea7b3146100d257806318160ddd1461010157806323b872dd1461011f578063313ce5671461013e575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100bc610248565b6040516100c9919061070f565b60405180910390f35b3480156100dd575f80fd5b506100f16100ec366004610775565b6102d8565b60405190151581526020016100c9565b34801561010c575f80fd5b506003545b6040519081526020016100c9565b34801561012a575f80fd5b506100f161013936600461079d565b6102ee565b348015610149575f80fd5b5060025460405160ff90911681526020016100c9565b34801561016a575f80fd5b5061017e610179366004610873565b61033c565b005b34801561018b575f80fd5b5061017e61019a3660046108d3565b610360565b3480156101aa575f80fd5b506101116101b93660046108d3565b6001600160a01b03165f9081526001602052604090205490565b3480156101de575f80fd5b506100bc610398565b3480156101f2575f80fd5b506100f1610201366004610775565b6103a7565b348015610211575f80fd5b506101116102203660046108f3565b6001600160a01b039182165f9081526020818152604080832093909416825291909152205490565b60606004805461025790610924565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610924565b80156102ce5780601f106102a5576101008083540402835291602001916102ce565b820191905f5260205f20905b8154815290600101906020018083116102b157829003601f168201915b5050505050905090565b5f6102e43384846103b4565b5060015b92915050565b5f6102fa8484846104da565b6001600160a01b0384165f908152602081815260408083203380855292529091205461033291869161032d908690610970565b6103b4565b5060019392505050565b6006546001600160a01b03163314610352575f80fd5b61035c82826106f1565b5050565b6006546001600160a01b03163314610376575f80fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60606005805461025790610924565b5f336103328185856104da565b6001600160a01b03831661041b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b03821661047c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610412565b6001600160a01b038381165f818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661053e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610412565b6001600160a01b0382166105a05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610412565b6001600160a01b038381165f81815260016020526040902054600654909216148015906105db57506006546001600160a01b03848116911614155b156105f9576007546001600160a01b038085169116036105f9575f80fd5b818110156106585760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610412565b6106628282610970565b6001600160a01b038086165f908152600160205260408082209390935590851681529081208054849290610697908490610983565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391815260200190565b60405180910390a350505050565b60046106fd83826109e3565b50600561070a82826109e3565b505050565b5f6020808352835180828501525f5b8181101561073a5785810183015185820160400152820161071e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610770575f80fd5b919050565b5f8060408385031215610786575f80fd5b61078f8361075a565b946020939093013593505050565b5f805f606084860312156107af575f80fd5b6107b88461075a565b92506107c66020850161075a565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126107f9575f80fd5b813567ffffffffffffffff80821115610814576108146107d6565b604051601f8301601f19908116603f0116810190828211818310171561083c5761083c6107d6565b81604052838152866020858801011115610854575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215610884575f80fd5b823567ffffffffffffffff8082111561089b575f80fd5b6108a7868387016107ea565b935060208501359150808211156108bc575f80fd5b506108c9858286016107ea565b9150509250929050565b5f602082840312156108e3575f80fd5b6108ec8261075a565b9392505050565b5f8060408385031215610904575f80fd5b61090d8361075a565b915061091b6020840161075a565b90509250929050565b600181811c9082168061093857607f821691505b60208210810361095657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102e8576102e861095c565b808201808211156102e8576102e861095c565b601f82111561070a575f81815260208120601f850160051c810160208610156109bc5750805b601f850160051c820191505b818110156109db578281556001016109c8565b505050505050565b815167ffffffffffffffff8111156109fd576109fd6107d6565b610a1181610a0b8454610924565b84610996565b602080601f831160018114610a44575f8415610a2d5750858301515b5f19600386901b1c1916600185901b1785556109db565b5f85815260208120601f198616915b82811015610a7257888601518255948401946001909101908401610a53565b5085821015610a8f57878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122037134307b6df13898ebfd19128b7579a4ad1ba4190d0ca895bfccb9d843f071c64736f6c63430008140033
0x60806040526007805460ff60a01b191690553480156200001d575f80fd5b5060405162000fc238038062000fc28339810160408190526200004091620001cf565b600680546001600160a01b031916331790556004620000608382620002c1565b5060056200006f8282620002c1565b506002805460ff191660129081179091556200008d90600a62000498565b6200009d90633b9aca00620004af565b6003819055335f90815260016020526040902054620000bd9190620004c9565b335f818152600160209081526040808320949094556003549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004df565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000135575f80fd5b81516001600160401b038082111562000152576200015262000111565b604051601f8301601f19908116603f011681019082821181831017156200017d576200017d62000111565b8160405283815260209250868385880101111562000199575f80fd5b5f91505b83821015620001bc57858201830151818301840152908201906200019d565b5f93810190920192909252949350505050565b5f8060408385031215620001e1575f80fd5b82516001600160401b0380821115620001f8575f80fd5b620002068683870162000125565b935060208501519150808211156200021c575f80fd5b506200022b8582860162000125565b9150509250929050565b600181811c908216806200024a57607f821691505b6020821081036200026957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002bc575f81815260208120601f850160051c81016020861015620002975750805b601f850160051c820191505b81811015620002b857828155600101620002a3565b5050505b505050565b81516001600160401b03811115620002dd57620002dd62000111565b620002f581620002ee845462000235565b846200026f565b602080601f8311600181146200032b575f8415620003135750858301515b5f19600386901b1c1916600185901b178555620002b8565b5f85815260208120601f198616915b828110156200035b578886015182559484019460019091019084016200033a565b50858210156200037957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003dd57815f1904821115620003c157620003c162000389565b80851615620003cf57918102915b93841c9390800290620003a2565b509250929050565b5f82620003f55750600162000492565b816200040357505f62000492565b81600181146200041c5760028114620004275762000447565b600191505062000492565b60ff8411156200043b576200043b62000389565b50506001821b62000492565b5060208310610133831016604e8410600b84101617156200046c575081810a62000492565b6200047883836200039d565b805f19048211156200048e576200048e62000389565b0290505b92915050565b5f620004a860ff841683620003e5565b9392505050565b808202811582820484141762000492576200049262000389565b8082018082111562000492576200049262000389565b610ad580620004ed5f395ff3fe60806040526004361061009d575f3560e01c806345aff9be1161006257806345aff9be1461015f5780635066b0341461018057806370a082311461019f57806395d89b41146101d3578063a9059cbb146101e7578063dd62ed3e14610206575f80fd5b806306fdde03146100a8578063095ea7b3146100d257806318160ddd1461010157806323b872dd1461011f578063313ce5671461013e575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100bc610248565b6040516100c9919061070f565b60405180910390f35b3480156100dd575f80fd5b506100f16100ec366004610775565b6102d8565b60405190151581526020016100c9565b34801561010c575f80fd5b506003545b6040519081526020016100c9565b34801561012a575f80fd5b506100f161013936600461079d565b6102ee565b348015610149575f80fd5b5060025460405160ff90911681526020016100c9565b34801561016a575f80fd5b5061017e610179366004610873565b61033c565b005b34801561018b575f80fd5b5061017e61019a3660046108d3565b610360565b3480156101aa575f80fd5b506101116101b93660046108d3565b6001600160a01b03165f9081526001602052604090205490565b3480156101de575f80fd5b506100bc610398565b3480156101f2575f80fd5b506100f1610201366004610775565b6103a7565b348015610211575f80fd5b506101116102203660046108f3565b6001600160a01b039182165f9081526020818152604080832093909416825291909152205490565b60606004805461025790610924565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610924565b80156102ce5780601f106102a5576101008083540402835291602001916102ce565b820191905f5260205f20905b8154815290600101906020018083116102b157829003601f168201915b5050505050905090565b5f6102e43384846103b4565b5060015b92915050565b5f6102fa8484846104da565b6001600160a01b0384165f908152602081815260408083203380855292529091205461033291869161032d908690610970565b6103b4565b5060019392505050565b6006546001600160a01b03163314610352575f80fd5b61035c82826106f1565b5050565b6006546001600160a01b03163314610376575f80fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60606005805461025790610924565b5f336103328185856104da565b6001600160a01b03831661041b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b03821661047c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610412565b6001600160a01b038381165f818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661053e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610412565b6001600160a01b0382166105a05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610412565b6001600160a01b038381165f81815260016020526040902054600654909216148015906105db57506006546001600160a01b03848116911614155b156105f9576007546001600160a01b038085169116036105f9575f80fd5b818110156106585760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610412565b6106628282610970565b6001600160a01b038086165f908152600160205260408082209390935590851681529081208054849290610697908490610983565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391815260200190565b60405180910390a350505050565b60046106fd83826109e3565b50600561070a82826109e3565b505050565b5f6020808352835180828501525f5b8181101561073a5785810183015185820160400152820161071e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610770575f80fd5b919050565b5f8060408385031215610786575f80fd5b61078f8361075a565b946020939093013593505050565b5f805f606084860312156107af575f80fd5b6107b88461075a565b92506107c66020850161075a565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126107f9575f80fd5b813567ffffffffffffffff80821115610814576108146107d6565b604051601f8301601f19908116603f0116810190828211818310171561083c5761083c6107d6565b81604052838152866020858801011115610854575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215610884575f80fd5b823567ffffffffffffffff8082111561089b575f80fd5b6108a7868387016107ea565b935060208501359150808211156108bc575f80fd5b506108c9858286016107ea565b9150509250929050565b5f602082840312156108e3575f80fd5b6108ec8261075a565b9392505050565b5f8060408385031215610904575f80fd5b61090d8361075a565b915061091b6020840161075a565b90509250929050565b600181811c9082168061093857607f821691505b60208210810361095657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102e8576102e861095c565b808201808211156102e8576102e861095c565b601f82111561070a575f81815260208120601f850160051c810160208610156109bc5750805b601f850160051c820191505b818110156109db578281556001016109c8565b505050505050565b815167ffffffffffffffff8111156109fd576109fd6107d6565b610a1181610a0b8454610924565b84610996565b602080601f831160018114610a44575f8415610a2d5750858301515b5f19600386901b1c1916600185901b1785556109db565b5f85815260208120601f198616915b82811015610a7257888601518255948401946001909101908401610a53565b5085821015610a8f57878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122037134307b6df13898ebfd19128b7579a4ad1ba4190d0ca895bfccb9d843f071c64736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000010f4f72646962616e6b2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020307843653645353444614131656139356662333533303835396436394434626462393738646438323162000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044f52424b00000000000000000000000000000000000000000000000000000000