60806040525f80555f60015534801562000017575f80fd5b50620000266012600a620001db565b62000036906313d92d40620001f2565b335f8181526002602090815260408083209490945530825260038152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000a56012600a620001db565b620000b5906313d92d40620001f2565b60405190815260200160405180910390a36200020c565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200012057815f1904821115620001045762000104620000cc565b808516156200011257918102915b93841c9390800290620000e5565b509250929050565b5f826200013857506001620001d5565b816200014657505f620001d5565b81600181146200015f57600281146200016a576200018a565b6001915050620001d5565b60ff8411156200017e576200017e620000cc565b50506001821b620001d5565b5060208310610133831016604e8410600b8410161715620001af575081810a620001d5565b620001bb8383620000e0565b805f1904821115620001d157620001d1620000cc565b0290505b92915050565b5f620001eb60ff84168362000128565b9392505050565b8082028115828204841417620001d557620001d5620000cc565b610aea806200021a5f395ff3fe60806040526004361061009d575f3560e01c80636ffa6406116100625780636ffa64061461018f57806370a08231146101a557806395d89b41146101d0578063a9059cbb146101fe578063dd62ed3e1461021d578063fba714f814610253575f80fd5b806306fdde03146100a8578063095ea7b3146100f957806318160ddd1461012857806323b872dd1461014a578063313ce56714610169575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100e36040518060400160405280601081526020016f4d696c6164792057617266617265203360801b81525081565b6040516100f091906107a2565b60405180910390f35b348015610104575f80fd5b50610118610113366004610808565b610272565b60405190151581526020016100f0565b348015610133575f80fd5b5061013c6102de565b6040519081526020016100f0565b348015610155575f80fd5b50610118610164366004610830565b6102fb565b348015610174575f80fd5b5061017d601281565b60405160ff90911681526020016100f0565b34801561019a575f80fd5b506101a3610348565b005b3480156101b0575f80fd5b5061013c6101bf366004610869565b60026020525f908152604090205481565b3480156101db575f80fd5b506100e3604051806040016040528060038152602001624d573360e81b81525081565b348015610209575f80fd5b50610118610218366004610808565b610392565b348015610228575f80fd5b5061013c610237366004610882565b600360209081525f928352604080842090915290825290205481565b34801561025e575f80fd5b506101a361026d3660046108b3565b6103a5565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102cc9086815260200190565b60405180910390a35060015b92915050565b6102ea6012600a6109c7565b6102f8906313d92d406109d5565b81565b6001600160a01b0383165f90815260036020908152604080832033845290915281208054839190839061032f9084906109ec565b9091555061034090508484846103ce565b949350505050565b3373e191505a7988c7bee50fcefc9d806440cf19645214610367575f80fd5b600454600160a81b900460ff161561037d575f80fd5b6004805460ff60a81b1916600160a81b179055565b5f61039e3384846103ce565b9392505050565b3373e191505a7988c7bee50fcefc9d806440cf196452146103c4575f80fd5b5f91909155600155565b6004545f90600160a81b900460ff168061040457506001600160a01b03841673e191505a7988c7bee50fcefc9d806440cf196452145b8061042b57506001600160a01b03831673e191505a7988c7bee50fcefc9d806440cf196452145b610433575f80fd5b600454600160a81b900460ff1615801561045657506004546001600160a01b0316155b801561046157505f82115b1561048257600480546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384165f90815260026020526040812080548492906104a99084906109ec565b90915550506004546001600160a01b0384811691161480156104d55750600454600160a01b900460ff16155b8015610514575060646104ea6012600a6109c7565b6104f8906313d92d406109d5565b61050291906109ff565b305f9081526002602052604090205410155b1561069e576004805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061055f5761055f610a1e565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106105a7576105a7610a1e565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646105e76012600a6109c7565b6105f5906313d92d406109d5565b6105ff91906109ff565b5f8430426040518663ffffffff1660e01b8152600401610623959493929190610a32565b5f604051808303815f87803b15801561063a575f80fd5b505af115801561064c573d5f803e3d5ffd5b505060405173e191505a7988c7bee50fcefc9d806440cf19645292504780156108fc029250905f818181858888f1935050505015801561068e573d5f803e3d5ffd5b50506004805460ff60a01b191690555b6001600160a01b038416301461071d576004545f906064906001600160a01b038781169116146106d0576001546106d3565b5f545b6106dd90856109d5565b6106e791906109ff565b90506106f381846109ec565b305f90815260026020526040812080549295508392909190610716908490610aa1565b9091555050505b6001600160a01b0383165f9081526002602052604081208054849290610744908490610aa1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079091815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b818110156107cd578581018301518582016040015282016107b1565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610803575f80fd5b919050565b5f8060408385031215610819575f80fd5b610822836107ed565b946020939093013593505050565b5f805f60608486031215610842575f80fd5b61084b846107ed565b9250610859602085016107ed565b9150604084013590509250925092565b5f60208284031215610879575f80fd5b61039e826107ed565b5f8060408385031215610893575f80fd5b61089c836107ed565b91506108aa602084016107ed565b90509250929050565b5f80604083850312156108c4575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561092157815f1904821115610907576109076108d3565b8085161561091457918102915b93841c93908002906108ec565b509250929050565b5f82610937575060016102d8565b8161094357505f6102d8565b816001811461095957600281146109635761097f565b60019150506102d8565b60ff841115610974576109746108d3565b50506001821b6102d8565b5060208310610133831016604e8410600b84101617156109a2575081810a6102d8565b6109ac83836108e7565b805f19048211156109bf576109bf6108d3565b029392505050565b5f61039e60ff841683610929565b80820281158282048414176102d8576102d86108d3565b818103818111156102d8576102d86108d3565b5f82610a1957634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610a805784516001600160a01b031683529383019391830191600101610a5b565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102d8576102d86108d356fea26469706673582212207118593a0f122ee16a1090f2ce0eeb82db76d80df235ee603f02e1599a45be7e64736f6c63430008140033