0x60806040523480156200001157600080fd5b5060405162000ec738038062000ec7833981016040819052620000349162000107565b6001600160a01b038316620000665760405162461bcd60e51b81526004016200005d906200015a565b60405180910390fd5b6001600160a01b0382166200008f5760405162461bcd60e51b81526004016200005d906200015a565b6001600160a01b038116620000b85760405162461bcd60e51b81526004016200005d9062000191565b600180546001600160a01b03199081166001600160a01b03958616179091556002805482169385169390931790925560038054600160a01b9316919093161760ff60a01b1916179055620001e1565b6000806000606084860312156200011c578283fd5b83516200012981620001c8565b60208501519093506200013c81620001c8565b60408501519092506200014f81620001c8565b809150509250925092565b6020808252601b908201527f5553445420616464726573732063616e6e6f74206265207a65726f0000000000604082015260600190565b6020808252601d908201527f57616c6c657420616464726573732063616e6e6f74206265207a65726f000000604082015260600190565b6001600160a01b0381168114620001de57600080fd5b50565b610cd680620001f16000396000f3fe6080604052600436106101015760003560e01c8063521eb273116100955780639e8c3a14116100645780639e8c3a1414610263578063a2e78dfa14610285578063db81f99b146102a5578063e730395a146102c5578063fc0c546a146102e557610108565b8063521eb273146102065780635ef8086f1461021b5780639638fc891461023b5780639c0caad61461025b57610108565b80632f48ab7d116100d15780632f48ab7d1461019a5780633e413bee146101bc5780633ea521ef146101d157806348c54b9d146101f157610108565b8062fe8edc1461010d57806311b0af151461012f578063280dfadd146101445780632b2da7c81461016457610108565b3661010857005b600080fd5b34801561011957600080fd5b5061012d610128366004610a0c565b6102fa565b005b34801561013b57600080fd5b5061012d610439565b34801561015057600080fd5b5061012d61015f3660046109c3565b610472565b34801561017057600080fd5b5061018461017f3660046109a2565b6104b8565b6040516101919190610c73565b60405180910390f35b3480156101a657600080fd5b506101af6104ca565b6040516101919190610a3c565b3480156101c857600080fd5b506101af6104d9565b3480156101dd57600080fd5b5061012d6101ec366004610a0c565b6104e8565b3480156101fd57600080fd5b5061012d610658565b34801561021257600080fd5b506101af6106ca565b34801561022757600080fd5b5061012d610236366004610a0c565b6106d9565b34801561024757600080fd5b506101846102563660046109a2565b6107cd565b61012d6107df565b34801561026f57600080fd5b506102786108c9565b6040516101919190610a8d565b34801561029157600080fd5b506101846102a03660046109a2565b6108d9565b3480156102b157600080fd5b5061012d6102c0366004610a0c565b6108eb565b3480156102d157600080fd5b506101846102e03660046109a2565b610965565b3480156102f157600080fd5b506101af610977565b600354600160a01b900460ff1661032c5760405162461bcd60e51b815260040161032390610c47565b60405180910390fd5b6000811161034c5760405162461bcd60e51b815260040161032390610b91565b6002546003546040516323b872dd60e01b81526001600160a01b03928316926323b872dd92610385923392909116908690600401610a50565b602060405180830381600087803b15801561039f57600080fd5b505af11580156103b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d791906109ec565b5033600090815260056020526040812080548392906103f7908490610c7c565b909155505060405133907f0fb3f3e7bfea6231b01393d68d79cea9864b5a7f1f9c2dbc63514c4663a063d19061042e908490610c73565b60405180910390a250565b6003546001600160a01b031633146104635760405162461bcd60e51b815260040161032390610bbd565b6003805460ff60a01b19169055565b6003546001600160a01b0316331461049c5760405162461bcd60e51b815260040161032390610aef565b6001600160a01b03909116600090815260076020526040902055565b60046020526000908152604090205481565b6001546001600160a01b031681565b6002546001600160a01b031681565b6003546001600160a01b031633146105125760405162461bcd60e51b815260040161032390610aef565b600081116105325760405162461bcd60e51b815260040161032390610b30565b6001546040516370a0823160e01b815282916001600160a01b0316906370a0823190610562903090600401610a3c565b60206040518083038186803b15801561057a57600080fd5b505afa15801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b29190610a24565b10156105d05760405162461bcd60e51b815260040161032390610bfe565b60015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906106029033908590600401610a74565b602060405180830381600087803b15801561061c57600080fd5b505af1158015610630573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065491906109ec565b5050565b336000908152600760205260409020546106845760405162461bcd60e51b815260040161032390610ac3565b336000818152600760205260408082208054908390559154905163a9059cbb60e01b815291926001600160a01b039091169163a9059cbb91610602918590600401610a74565b6003546001600160a01b031681565b600354600160a01b900460ff166107025760405162461bcd60e51b815260040161032390610c47565b600081116107225760405162461bcd60e51b815260040161032390610b65565b6001546003546040516323b872dd60e01b81526001600160a01b03928316926323b872dd9261075b923392909116908690600401610a50565b602060405180830381600087803b15801561077557600080fd5b505af1158015610789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ad91906109ec565b5033600090815260046020526040812080548392906103f7908490610c7c565b60076020526000908152604090205481565b600354600160a01b900460ff166108085760405162461bcd60e51b815260040161032390610c47565b600034116108285760405162461bcd60e51b815260040161032390610a98565b3360009081526006602052604081208054349290610847908490610c7c565b90915550506003546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610885573d6000803e3d6000fd5b50336001600160a01b03167f947da5436652e6777bafd970c067d1c83986f38c6cbf81f2ded0c0e044792d1d346040516108bf9190610c73565b60405180910390a2565b600354600160a01b900460ff1681565b60056020526000908152604090205481565b6003546001600160a01b031633146109155760405162461bcd60e51b815260040161032390610aef565b600081116109355760405162461bcd60e51b815260040161032390610b30565b6002546040516370a0823160e01b815282916001600160a01b0316906370a0823190610562903090600401610a3c565b60066020526000908152604090205481565b6000546001600160a01b031681565b80356001600160a01b038116811461099d57600080fd5b919050565b6000602082840312156109b3578081fd5b6109bc82610986565b9392505050565b600080604083850312156109d5578081fd5b6109de83610986565b946020939093013593505050565b6000602082840312156109fd578081fd5b815180151581146109bc578182fd5b600060208284031215610a1d578081fd5b5035919050565b600060208284031215610a35578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b602080825260119082015270139bc811551208199d5b991cc81cd95b9d607a1b604082015260600190565b6020808252601290820152714e6f20746f6b656e7320746f20636c61696d60701b604082015260600190565b60208082526021908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b6020808252818101527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604082015260600190565b602080825260129082015271139bc81554d11508199d5b991cc81cd95b9d60721b604082015260600190565b602080825260129082015271139bc81554d110c8199d5b991cc81cd95b9d60721b604082015260600190565b60208082526021908201527f4f6e6c79207468652077616c6c65742063616e20656e64207468652067616d656040820152607360f81b606082015260800190565b60208082526029908201527f496e73756666696369656e7420555344542062616c616e636520696e207468656040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b60208082526012908201527147616d65206973206e6f742061637469766560701b604082015260600190565b90815260200190565b60008219821115610c9b57634e487b7160e01b81526011600452602481fd5b50019056fea26469706673582212201668a2d918b68e110d2906aedd53fadc2ec5c6ce4a1e058bf761273c60843d4a64736f6c63430008000033000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000003a98afa8e8930ccd2576016921236901f0e2958