60c06040523480156200001157600080fd5b506040516200108d3803806200108d833981016040819052620000349162000129565b81816040518060400160405280601581526020017f4f6d656761204c697175696469747920546f6b656e00000000000000000000008152506040518060400160405280600381526020016213d31560ea1b8152508360006001600160a01b0316816001600160a01b031603620000bd5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03851660805260ff841660a0526000620000df84826200021f565b506001620000ee83826200021f565b50869450506001600160a01b0384169250620001209150505760405163d92e233d60e01b815260040160405180910390fd5b505050620002eb565b600080604083850312156200013d57600080fd5b82516001600160a01b03811681146200015557600080fd5b602084015190925060ff811681146200016d57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001a357607f821691505b602082108103620001c457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021a576000816000526020600020601f850160051c81016020861015620001f55750805b601f850160051c820191505b81811015620002165782815560010162000201565b5050505b505050565b81516001600160401b038111156200023b576200023b62000178565b62000253816200024c84546200018e565b84620001ca565b602080601f8311600181146200028b5760008415620002725750858301515b600019600386901b1c1916600185901b17855562000216565b600085815260208120601f198616915b82811015620002bc578886015182559484019460019091019084016200029b565b5085821015620002db5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a051610d6762000326600039600061017e015260008181610347015281816103c70152818161054001526107830152610d676000f3fe608060405234801561001057600080fd5b50600436106100e05760003560e01c806370a082311161008757806370a08231146101b05780637ecebe00146101c357806395d89b41146101e9578063a9059cbb146101f1578063b1bf962d146101ff578063d505accf14610207578063d6b960501461021a578063dd62ed3e1461022d57600080fd5b806306fdde03146100e5578063095ea7b31461010357806313452f731461012657806318160ddd1461013b5780631da24f3e1461015157806323b872dd14610164578063313ce567146101775780633644e515146101a8575b600080fd5b6100ed610256565b6040516100fa9190610a83565b60405180910390f35b610116610111366004610aee565b6102e8565b60405190151581526020016100fa565b610139610134366004610b27565b61033c565b005b6101436103bd565b6040519081526020016100fa565b61014361015f366004610b85565b610460565b610116610172366004610ba0565b61047a565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016100fa565b610143610495565b6101436101be366004610b85565b610512565b6101436101d1366004610b85565b6338377508600c908152600091909152602090205490565b6100ed6105cd565b610116610172366004610aee565b6101436105dc565b610139610215366004610bdc565b6105ef565b610139610228366004610c4f565b610778565b61014361023b366004610c95565b602052637f5e9f20600c908152600091909152603490205490565b60606000805461026590610cc8565b80601f016020809104026020016040519081016040528092919081815260200182805461029190610cc8565b80156102de5780601f106102b3576101008083540402835291602001916102de565b820191906000526020600020905b8154815290600101906020018083116102c157829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a35060015b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610385576040516323f09b3960e21b815260040160405180910390fd5b6000821561039d5761039686610460565b90506103ab565b6103a88585846107e1565b90505b6103b5868261081e565b505050505050565b600061045b6104527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663883c6b246040518163ffffffff1660e01b8152600401602060405180830381865afa158015610423573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104479190610d02565b6104556104526105dc565b90565b90610895565b905090565b6387a211a2600c9081526000828152602090912054610336565b600060405163a24e573d60e01b815260040160405180910390fd5b6000806104a0610256565b8051906020012090506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6387a211a2600c9081526000828152602090912054806000036105385750600092915050565b6105c66104527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663883c6b246040518163ffffffff1660e01b8152600401602060405180830381865afa15801561059c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c09190610d02565b83610455565b9392505050565b60606001805461026590610cc8565b600061045b6805345cdf77eb68f44c5490565b60006105f9610256565b8051906020012090508442111561061857631a15a3cc6000526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52886000526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c206000528660ff1660205285604052846060526020806080600060015afa8b3d51146107245763ddafbaef6000526004601cfd5b0190556303faf4f960a51b88176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107c1576040516323f09b3960e21b815260040160405180910390fd5b60006107ce8484846107e1565b90506107da85826108a4565b5050505050565b600082818360018111156107f7576107f7610d1b565b1461080b576108068582610923565b610815565b6108158582610972565b95945050505050565b6387a211a2600c52816000526020600c208054808311156108475763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c8054829003905560008181526001600160a01b0383167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b60006105c661045284846109c9565b6805345cdf77eb68f44c54818101818110156108c85763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a76400000215820261096057637c5f487d6000526004601cfd5b50670de0b6b3a7640000919091020490565b60007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218311670de0b6b3a7640000021582026109af57637c5f487d6000526004601cfd5b50670de0b6b3a76400009190910281810615159190040190565b60008080600019848609848602925082811083820303915050806000036109fd5750670de0b6b3a764000090049050610336565b670de0b6b3a76400008110610a3357604051635173648d60e01b8152600481018690526024810185905260440160405180910390fd5b6000670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b60006020808352835180602085015260005b81811015610ab157858101830151858201604001528201610a95565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ae957600080fd5b919050565b60008060408385031215610b0157600080fd5b610b0a83610ad2565b946020939093013593505050565b803560028110610ae957600080fd5b600080600080600060a08688031215610b3f57600080fd5b610b4886610ad2565b9450602086013593506040860135925060608601358015158114610b6b57600080fd5b9150610b7960808701610b18565b90509295509295909350565b600060208284031215610b9757600080fd5b6105c682610ad2565b600080600060608486031215610bb557600080fd5b610bbe84610ad2565b9250610bcc60208501610ad2565b9150604084013590509250925092565b600080600080600080600060e0888a031215610bf757600080fd5b610c0088610ad2565b9650610c0e60208901610ad2565b95506040880135945060608801359350608088013560ff81168114610c3257600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060008060808587031215610c6557600080fd5b610c6e85610ad2565b93506020850135925060408501359150610c8a60608601610b18565b905092959194509250565b60008060408385031215610ca857600080fd5b610cb183610ad2565b9150610cbf60208401610ad2565b90509250929050565b600181811c90821680610cdc57607f821691505b602082108103610cfc57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610d1457600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220c8232f4e04bd731cef28634cb8e7062daa54ed071d8da961fa84bab08901ffda64736f6c634300081800330000000000000000000000001094e0eaeba999195455aca8805c695db88286f90000000000000000000000000000000000000000000000000000000000000012