60806040523480156200001157600080fd5b50604051620013a1380380620013a1833981016040819052620000349162000234565b828282600362000045848262000347565b50600462000054838262000347565b506005805460ff191660ff92909216919091179055506200009b9050620000783390565b6200008583600a62000528565b6200009590633b9aca0062000540565b620000a4565b50505062000570565b6001600160a01b038216620000ff5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200011391906200055a565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200019757600080fd5b81516001600160401b0380821115620001b457620001b46200016f565b604051601f8301601f19908116603f01168101908282118183101715620001df57620001df6200016f565b81604052838152602092508683858801011115620001fc57600080fd5b600091505b8382101562000220578582018301518183018401529082019062000201565b600093810190920192909252949350505050565b6000806000606084860312156200024a57600080fd5b83516001600160401b03808211156200026257600080fd5b620002708783880162000185565b945060208601519150808211156200028757600080fd5b50620002968682870162000185565b925050604084015160ff81168114620002ae57600080fd5b809150509250925092565b600181811c90821680620002ce57607f821691505b602082108103620002ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200016a57600081815260208120601f850160051c810160208610156200031e5750805b601f850160051c820191505b818110156200033f578281556001016200032a565b505050505050565b81516001600160401b038111156200036357620003636200016f565b6200037b81620003748454620002b9565b84620002f5565b602080601f831160018114620003b357600084156200039a5750858301515b600019600386901b1c1916600185901b1785556200033f565b600085815260208120601f198616915b82811015620003e457888601518255948401946001909101908401620003c3565b5085821015620004035787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200046a5781600019048211156200044e576200044e62000413565b808516156200045c57918102915b93841c93908002906200042e565b509250929050565b600082620004835750600162000522565b81620004925750600062000522565b8160018114620004ab5760028114620004b657620004d6565b600191505062000522565b60ff841115620004ca57620004ca62000413565b50506001821b62000522565b5060208310610133831016604e8410600b8410161715620004fb575081810a62000522565b62000507838362000429565b80600019048211156200051e576200051e62000413565b0290505b92915050565b60006200053960ff84168362000472565b9392505050565b808202811582820484141762000522576200052262000413565b8082018082111562000522576200052262000413565b610e2180620005806000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146101b8578063a9059cbb146101cb578063dd62ed3e146101de57600080fd5b806340c10f191461016757806370a082311461017a57806395d89b41146101b057600080fd5b806323b872dd116100b257806323b872dd1461012c578063313ce5671461013f578063395093511461015457600080fd5b806306fdde03146100d9578063095ea7b3146100f757806318160ddd1461011a575b600080fd5b6100e1610224565b6040516100ee9190610ac0565b60405180910390f35b61010a610105366004610b55565b6102b6565b60405190151581526020016100ee565b6002545b6040519081526020016100ee565b61010a61013a366004610b7f565b6102d0565b60055460405160ff90911681526020016100ee565b61010a610162366004610b55565b6102f4565b61010a610175366004610b55565b610340565b61011e610188366004610bbb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100e16103e6565b61010a6101c6366004610b55565b6103f5565b61010a6101d9366004610b55565b6104c6565b61011e6101ec366004610bdd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461023390610c10565b80601f016020809104026020016040519081016040528092919081815260200182805461025f90610c10565b80156102ac5780601f10610281576101008083540402835291602001916102ac565b820191906000526020600020905b81548152906001019060200180831161028f57829003601f168201915b5050505050905090565b6000336102c48185856104d4565b60019150505b92915050565b6000336102de858285610687565b6102e985858561075e565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102c4908290869061033b908790610c92565b6104d4565b600061034e60055460ff1690565b61035990600a610dc5565b61036590612710610dd4565b8211156103d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f546f6b656e3a20696e76616c696420616d6f756e74000000000000000000000060448201526064015b60405180910390fd5b6103dd83836109cd565b50600192915050565b60606004805461023390610c10565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156104b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016103ca565b6102e982868684036104d4565b6000336102c481858561075e565b73ffffffffffffffffffffffffffffffffffffffff8316610576576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103ca565b73ffffffffffffffffffffffffffffffffffffffff8216610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103ca565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610758578181101561074b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ca565b61075884848484036104d4565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610801576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103ca565b73ffffffffffffffffffffffffffffffffffffffff82166108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103ca565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561095a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103ca565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610758565b73ffffffffffffffffffffffffffffffffffffffff8216610a4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103ca565b8060026000828254610a5c9190610c92565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600060208083528351808285015260005b81811015610aed57858101830151858201604001528201610ad1565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b5057600080fd5b919050565b60008060408385031215610b6857600080fd5b610b7183610b2c565b946020939093013593505050565b600080600060608486031215610b9457600080fd5b610b9d84610b2c565b9250610bab60208501610b2c565b9150604084013590509250925092565b600060208284031215610bcd57600080fd5b610bd682610b2c565b9392505050565b60008060408385031215610bf057600080fd5b610bf983610b2c565b9150610c0760208401610b2c565b90509250929050565b600181811c90821680610c2457607f821691505b602082108103610c5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102ca576102ca610c63565b600181815b80851115610cfe57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ce457610ce4610c63565b80851615610cf157918102915b93841c9390800290610caa565b509250929050565b600082610d15575060016102ca565b81610d22575060006102ca565b8160018114610d385760028114610d4257610d5e565b60019150506102ca565b60ff841115610d5357610d53610c63565b50506001821b6102ca565b5060208310610133831016604e8410600b8410161715610d81575081810a6102ca565b610d8b8383610ca5565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610dbd57610dbd610c63565b029392505050565b6000610bd660ff841683610d06565b80820281158282048414176102ca576102ca610c6356fea2646970667358221220e10b45b3b03c8f00f86c7298c93e3f0d3a8fa705e9ddfd739cb5bd827753e5e964736f6c63430008130033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003415045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034150450000000000000000000000000000000000000000000000000000000000