600e80546001600160a01b0319167373282a63f0e3d7e9604575420f777361eca3c86a1790556012608081815271497465726174696f6e53796e64696361746560701b60a052610100604052600360c09081526249545360e81b60e052909169152d02c7e14af680000062000090620000806001600160e01b036200023316565b826001600160e01b036200023816565b508251620000a69060039060208601906200096c565b508151620000bc9060049060208501906200096c565b506005805460ff90921660ff199092169190911790555050426015819055606460115560196012556032601355610e106016556276a7000160175568056bc75e2d63100000601455600d80546001600160a01b0319163317908190556040516001600160a01b0391909116906200013390620009f1565b6001600160a01b03909116815260405190819003602001906000f08015801562000161573d6000803e3d6000fd5b5060188054610100600160a81b0319166101006001600160a01b039384168102919091178255306000908152600f60209081526040808320805460ff1990811660019081179092558654869004881685528285208054821683179055600e8054891686528386208054831684179055875482168317885533865260109094528285208054821683179055925487168452818420805484168217905594549390930490941681522080549092161790556200022d6200021e62000233565b6001600160e01b036200028316565b62000a1c565b335b90565b6001600160a01b03808316600090815260066020526040812054620002689216836001600160e01b03620002d516565b6200027f82826200045960201b620031811760201c565b5050565b6200029e8160196200055a60201b62002dca1790919060201c565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b816001600160a01b0316836001600160a01b031614158015620002f85750600081115b1562000454576001600160a01b03831615620003a9576001600160a01b03831660009081526008602052604081205463ffffffff1690816200033c5760006200036e565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b905060006200038c8483620005e760201b62002a771790919060201c565b9050620003a5868484846001600160e01b036200063816565b5050505b6001600160a01b0382161562000454576001600160a01b03821660009081526008602052604081205463ffffffff169081620003e757600062000419565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000620004378483620007ac60201b6200247c1790919060201c565b905062000450858484846001600160e01b036200063816565b5050505b505050565b6001600160a01b038216620004b5576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620004d181600254620007ac60201b6200247c1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005049183906200247c620007ac821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6200056f82826001600160e01b036200080716565b15620005c2576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006200063183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200087060201b60201c565b9392505050565b600062000668436040518060600160405280603f815260200162004a65603f91396001600160e01b036200090b16565b905060008463ffffffff16118015620006b257506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b15620006f1576001600160a01b038516600090815260076020908152604080832063ffffffff6000198901168452909152902060010182905562000762565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008282018381101562000631576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b038216620008505760405162461bcd60e51b815260040180806020018281038252602281526020018062004aa46022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008184841115620009035760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620008c7578181015183820152602001620008ad565b50505050905090810190601f168015620008f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000816401000000008410620009645760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620008c7578181015183820152602001620008ad565b509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620009af57805160ff1916838001178555620009df565b82800160010185558215620009df579182015b82811115620009df578251825591602001919060010190620009c2565b50620009ed929150620009ff565b5090565b610919806200414c83390190565b6200023591905b80821115620009ed576000815560010162000a06565b6137208062000a2c6000396000f3fe6080604052600436106103805760003560e01c80637e0d943e116101d1578063baaa906411610102578063dd62ed3e116100a0578063e84354c51161006f578063e84354c514610c27578063f1127ed814610c3c578063f953797314610c9b578063ffafa0a414610cce57610380565b8063dd62ed3e14610bad578063e161eb5614610be8578063e5ec1d8c14610bfd578063e7a324dc14610c1257610380565b8063ca5c7b91116100dc578063ca5c7b9114610b59578063cafab28914610b6e578063cf30901214610b83578063dc654a7314610b9857610380565b8063baaa906414610a9f578063bb5f747b14610ad2578063c3cda52014610b0557610380565b8063a69df4b51161016f578063b439824411610149578063b439824414610a18578063b4b5ea5714610a2d578063b6833c5914610a60578063b91f3f9714610a8a57610380565b8063a69df4b5146109b5578063a8a5550e146109ca578063a9059cbb146109df57610380565b8063858750ab116101ab578063858750ab1461091f57806395d89b4114610934578063a29a608914610949578063a457c2d71461097c57610380565b80637e0d943e146108ad5780637ecebe00146108d75780637f4aeb1a1461090a57610380565b806342966c68116102b657806361d027b31161025457806370a082311161022357806370a08231146107d55780637362d9c814610808578063782d6fe11461083b57806379cc67901461087457610380565b806361d027b31461071757806367a9fca61461072c5780636fcfff451461075657806370709a7c146107a257610380565b806355d0a1d01161029057806355d0a1d014610672578063587cde1e146106875780635b7dcaed146106ba5780635c19a95c146106e457610380565b806342966c681461061e57806349bd5a5e146106485780634c5a628c1461065d57610380565b806316d1d9161161032357806323b872dd116102fd57806323b872dd146105625780632898cafa146105a5578063313ce567146105ba57806339509351146105e557610380565b806316d1d9161461052357806318160ddd1461053857806320606b701461054d57610380565b8063095ea7b31161035f578063095ea7b31461045d578063106b9ca1146104aa5780631419841d146104bf5780631694505e146104f257610380565b80629a81301461038257806302dd19d9146103ac57806306fdde03146103d3575b005b34801561038e57600080fd5b50610380600480360360208110156103a557600080fd5b5035610ce3565b3480156103b857600080fd5b506103c1610d79565b60408051918252519081900360200190f35b3480156103df57600080fd5b506103e8610d7f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561042257818101518382015260200161040a565b50505050905090810190601f16801561044f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561046957600080fd5b506104966004803603604081101561048057600080fd5b506001600160a01b038135169060200135610e15565b604080519115158252519081900360200190f35b3480156104b657600080fd5b506103c1610e33565b3480156104cb57600080fd5b50610380600480360360208110156104e257600080fd5b50356001600160a01b0316610e39565b3480156104fe57600080fd5b50610507610ee9565b604080516001600160a01b039092168252519081900360200190f35b34801561052f57600080fd5b506103c1610ef8565b34801561054457600080fd5b506103c1610efe565b34801561055957600080fd5b506103c1610f04565b34801561056e57600080fd5b506104966004803603606081101561058557600080fd5b506001600160a01b03813581169160208101359091169060400135610f1f565b3480156105b157600080fd5b506103c1610fac565b3480156105c657600080fd5b506105cf61102b565b6040805160ff9092168252519081900360200190f35b3480156105f157600080fd5b506104966004803603604081101561060857600080fd5b506001600160a01b038135169060200135611034565b34801561062a57600080fd5b506103806004803603602081101561064157600080fd5b5035611088565b34801561065457600080fd5b5061050761109c565b34801561066957600080fd5b506103806110ab565b34801561067e57600080fd5b506103c16110bd565b34801561069357600080fd5b50610507600480360360208110156106aa57600080fd5b50356001600160a01b03166111b1565b3480156106c657600080fd5b50610380600480360360208110156106dd57600080fd5b50356111cf565b3480156106f057600080fd5b506103806004803603602081101561070757600080fd5b50356001600160a01b031661121a565b34801561072357600080fd5b50610507611224565b34801561073857600080fd5b506103806004803603602081101561074f57600080fd5b5035611233565b34801561076257600080fd5b506107896004803603602081101561077957600080fd5b50356001600160a01b03166112c4565b6040805163ffffffff9092168252519081900360200190f35b3480156107ae57600080fd5b50610380600480360360208110156107c557600080fd5b50356001600160a01b03166112dc565b3480156107e157600080fd5b506103c1600480360360208110156107f857600080fd5b50356001600160a01b031661134b565b34801561081457600080fd5b506103806004803603602081101561082b57600080fd5b50356001600160a01b0316611366565b34801561084757600080fd5b506103c16004803603604081101561085e57600080fd5b506001600160a01b0381351690602001356113b5565b34801561088057600080fd5b506103806004803603604081101561089757600080fd5b506001600160a01b0381351690602001356115bd565b3480156108b957600080fd5b50610380600480360360208110156108d057600080fd5b50356115cb565b3480156108e357600080fd5b506103c1600480360360208110156108fa57600080fd5b50356001600160a01b031661165c565b34801561091657600080fd5b5061038061166e565b34801561092b57600080fd5b506103c161186f565b34801561094057600080fd5b506103e86118ba565b34801561095557600080fd5b506103806004803603602081101561096c57600080fd5b50356001600160a01b031661191b565b34801561098857600080fd5b506104966004803603604081101561099f57600080fd5b506001600160a01b0381351690602001356119cb565b3480156109c157600080fd5b50610380611a39565b3480156109d657600080fd5b506103c1611a8b565b3480156109eb57600080fd5b5061049660048036036040811015610a0257600080fd5b506001600160a01b038135169060200135611a9b565b348015610a2457600080fd5b506103c1611aaf565b348015610a3957600080fd5b506103c160048036036020811015610a5057600080fd5b50356001600160a01b0316611ad0565b348015610a6c57600080fd5b5061038060048036036020811015610a8357600080fd5b5035611b34565b348015610a9657600080fd5b50610380611b7f565b348015610aab57600080fd5b5061038060048036036020811015610ac257600080fd5b50356001600160a01b0316611d0b565b348015610ade57600080fd5b5061049660048036036020811015610af557600080fd5b50356001600160a01b0316611d73565b348015610b1157600080fd5b50610380600480360360c0811015610b2857600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135611d86565b348015610b6557600080fd5b506103c1611ffc565b348015610b7a57600080fd5b506103c1612085565b348015610b8f57600080fd5b5061049661208b565b348015610ba457600080fd5b506103c1612094565b348015610bb957600080fd5b506103c160048036036040811015610bd057600080fd5b506001600160a01b038135811691602001351661209a565b348015610bf457600080fd5b506103c16120c5565b348015610c0957600080fd5b506105076120cb565b348015610c1e57600080fd5b506103c16120da565b348015610c3357600080fd5b506103c16120f5565b348015610c4857600080fd5b50610c7b60048036036040811015610c5f57600080fd5b5080356001600160a01b0316906020013563ffffffff166120fb565b6040805163ffffffff909316835260208301919091528051918290030190f35b348015610ca757600080fd5b5061038060048036036020811015610cbe57600080fd5b50356001600160a01b0316612128565b348015610cda57600080fd5b50610507612197565b610cf3610cee6121a6565b611d73565b610d2e5760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b8015610d7457600a811015610d745760405162461bcd60e51b815260040180806020018281038252602b81526020018061330a602b913960400191505060405180910390fd5b601255565b60125481565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e0b5780601f10610de057610100808354040283529160200191610e0b565b820191906000526020600020905b815481529060010190602001808311610dee57829003601f168201915b5050505050905090565b6000610e29610e226121a6565b84846121aa565b5060015b92915050565b60155481565b610e44610cee6121a6565b610e7f5760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b600a546001600160a01b031615610ec75760405162461bcd60e51b815260040180806020018281038252602981526020018061335b6029913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b031681565b60165481565b60025490565b60405180604361340c82396043019050604051809103902081565b6000610f2c848484612296565b610fa284610f386121a6565b610f9d85604051806060016040528060288152602001613497602891396001600160a01b038a16600090815260016020526040812090610f766121a6565b6001600160a01b03168152602081019190915260400160002054919063ffffffff6123e516565b6121aa565b5060019392505050565b600b54604080516370a0823160e01b8152600060048201819052915191926001600160a01b0316916370a0823191602480820192602092909190829003018186803b158015610ffa57600080fd5b505afa15801561100e573d6000803e3d6000fd5b505050506040513d602081101561102457600080fd5b5051905090565b60055460ff1690565b6000610e296110416121a6565b84610f9d85600160006110526121a6565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61247c16565b6110996110936121a6565b826124d6565b50565b600b546001600160a01b031681565b6110bb6110b66121a6565b612506565b565b600080600b60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b505190506000611146610fac565b9050600061116f836111638464e8d4a5100063ffffffff61254e16565b9063ffffffff6125a716565b600b5490915060009061118a906001600160a01b031661134b565b905060006111a764e8d4a51000611163848663ffffffff61254e16565b9550505050505090565b6001600160a01b039081166000908152600660205260409020541690565b6111da610cee6121a6565b6112155760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b601655565b61109933826125e9565b600d546001600160a01b031681565b61123e610cee6121a6565b6112795760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b80156112bf57600a8110156112bf5760405162461bcd60e51b815260040180806020018281038252602c8152602001806136c0602c913960400191505060405180910390fd5b601155565b60086020526000908152604090205463ffffffff1681565b6112e7610cee6121a6565b6113225760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b6001600160a01b03166000908152600f60205260409020805460ff19811660ff90911615179055565b6001600160a01b031660009081526020819052604090205490565b611371610cee6121a6565b6113ac5760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b6110998161267e565b60004382106113f55760405162461bcd60e51b81526004018080602001828103825260328152602001806135de6032913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680611423576000915050610e2d565b6001600160a01b038416600090815260076020908152604080832063ffffffff600019860181168552925290912054168310611492576001600160a01b03841660009081526007602090815260408083206000199490940163ffffffff16835292905220600101549050610e2d565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff168310156114cd576000915050610e2d565b600060001982015b8163ffffffff168163ffffffff16111561158657600282820363ffffffff160481036114ff61316a565b506001600160a01b038716600090815260076020908152604080832063ffffffff80861685529083529281902081518083019092528054909316808252600190930154918101919091529087141561156157602001519450610e2d9350505050565b805163ffffffff168711156115785781935061157f565b6001820392505b50506114d5565b506001600160a01b038516600090815260076020908152604080832063ffffffff9094168352929052206001015491505092915050565b6115c782826126c6565b5050565b6115d6610cee6121a6565b6116115760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b801561165757600a8110156116575760405162461bcd60e51b81526004018080602001828103825260288152602001806133846028913960400191505060405180910390fd5b601355565b60096020526000908152604090205481565b60145461167a3361134b565b10156116b75760405162461bcd60e51b81526004018080602001828103825260228152602001806135456022913960400191505060405180910390fd5b6016546015540142116116fd576040805162461bcd60e51b81526020600482015260096024820152682a37b79029b7b7b71760b91b604482015290519081900360640190fd5b42601555600061170c3061134b565b90506117178161271a565b601354600b54604080516370a0823160e01b815230600482015290516000936117a69390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561176e57600080fd5b505afa158015611782573d6000803e3d6000fd5b505050506040513d602081101561179857600080fd5b50519063ffffffff6125a716565b90506117b18161289b565b5060185460125460408051631e93260360e31b815260048101929092525160009261010090046001600160a01b03169163f499301891602480830192602092919082900301818787803b15801561180757600080fd5b505af115801561181b573d6000803e3d6000fd5b505050506040513d602081101561183157600080fd5b50516040805182815290519192507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0919081900360200190a1505050565b600b54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610ffa57600080fd5b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e0b5780601f10610de057610100808354040283529160200191610e0b565b611926610cee6121a6565b6119615760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b600b546001600160a01b0316156119a95760405162461bcd60e51b815260040180806020018281038252602781526020018061344f6027913960400191505060405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e296119d86121a6565b84610f9d8560405180606001604052806025815260200161369b6025913960016000611a026121a6565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff6123e516565b611a44610cee6121a6565b611a7f5760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b6018805460ff19169055565b6000611a963061134b565b905090565b6000610e29611aa86121a6565b8484612296565b6000611a96611abc610fac565b611ac461186f565b9063ffffffff61247c16565b6001600160a01b03811660009081526008602052604081205463ffffffff1680611afb576000611b2d565b6001600160a01b038316600090815260076020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b611b3f610cee6121a6565b611b7a5760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b601455565b611b8a610cee6121a6565b611bc55760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b6017544211611c0e576040805162461bcd60e51b815260206004820152601060248201526f139bdd081d5b9b1bd8dad959081e595d60821b604482015290519081900360640190fd5b600b54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015611c5957600080fd5b505afa158015611c6d573d6000803e3d6000fd5b505050506040513d6020811015611c8357600080fd5b5051600b546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b158015611cdc57600080fd5b505af1158015611cf0573d6000803e3d6000fd5b505050506040513d6020811015611d0657600080fd5b505050565b611d16610cee6121a6565b611d515760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e2d60198363ffffffff6129cf16565b6000604051808061340c6043913960430190506040518091039020611da9610d7f565b80519060200120611db8612a36565b3060405160200180858152602001848152602001838152602001826001600160a01b03166001600160a01b0316815260200194505050505060405160208183030381529060405280519060200120905060006040518080613661603a91396040805191829003603a0182206020808401919091526001600160a01b038c1683830152606083018b905260808084018b90528251808503909101815260a08401835280519082012061190160f01b60c085015260c2840187905260e2808501829052835180860390910181526101028501808552815191840191909120600091829052610122860180865281905260ff8c1661014287015261016286018b905261018286018a9052935191965092945091926001926101a28083019392601f198301929081900390910190855afa158015611ef6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611f485760405162461bcd60e51b81526004018080602001828103825260318152602001806132b76031913960400191505060405180910390fd5b6001600160a01b03811660009081526009602052604090208054600181019091558914611fa65760405162461bcd60e51b815260040180806020018281038252602d815260200180613634602d913960400191505060405180910390fd5b87421115611fe55760405162461bcd60e51b81526004018080602001828103825260318152602001806135676031913960400191505060405180910390fd5b611fef818b6125e9565b505050505b505050505050565b600080600b60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561204d57600080fd5b505afa158015612061573d6000803e3d6000fd5b505050506040513d602081101561207757600080fd5b505190506000611146611aaf565b60175481565b60185460ff1681565b60115481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60135481565b600e546001600160a01b031681565b60405180603a6136618239603a019050604051809103902081565b60145481565b60076020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b612133610cee6121a6565b61216e5760405162461bcd60e51b81526004018080602001828103825260408152602001806134e16040913960400191505060405180910390fd5b6001600160a01b03166000908152601060205260409020805460ff19811660ff90911615179055565b600c546001600160a01b031681565b3390565b6001600160a01b0383166121ef5760405162461bcd60e51b81526004018080602001828103825260248152602001806136106024913960400191505060405180910390fd5b6001600160a01b0382166122345760405162461bcd60e51b81526004018080602001828103825260228152602001806132e86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60185460ff1680156122c657506001600160a01b03831660009081526010602052604090205460ff161515600114155b80156122f057506001600160a01b03821660009081526010602052604090205460ff161515600114155b15612342576040805162461bcd60e51b815260206004820152601b60248201527f4c6f636b656420756e74696c20656e64206f662070726573616c650000000000604482015290519081900360640190fd5b6011541580159061236c57506001600160a01b0383166000908152600f602052604090205460ff16155b801561239157506001600160a01b0382166000908152600f602052604090205460ff16155b156123da5760006123ad601154836125a790919063ffffffff16565b90506123ba843083612a3a565b6123d484846123cf858563ffffffff612a7716565b612a3a565b50611d06565b611d06838383612a3a565b600081848411156124745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612439578181015183820152602001612421565b50505050905090810190601f1680156124665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611b2d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038083166000908152600660205260408120546124fc92169083612ab9565b6115c78282612c02565b61251760198263ffffffff612cfe16565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b60008261255d57506000610e2d565b8282028284828161256a57fe5b0414611b2d5760405162461bcd60e51b81526004018080602001828103825260218152602001806134766021913960400191505060405180910390fd5b6000611b2d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d65565b6001600160a01b03808316600090815260066020526040812054909116906126108461134b565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4612678828483612ab9565b50505050565b61268f60198263ffffffff612dca16565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b6126d082826124d6565b6115c7826126dc6121a6565b610f9d84604051806060016040528060248152602001613521602491396001600160a01b038816600090815260016020526040812090610f766121a6565b600c546001600160a01b0316156127e457600c546127439030906001600160a01b031683612a3a565b600c60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561279357600080fd5b505af11580156127a7573d6000803e3d6000fd5b50506040805184815290517fcf550a3d0a19e4909b27127ccd7acb5f883a8c5490d06e7d62491736b30eceb19350908190036020019150a1611099565b600b546127fc9030906001600160a01b031683612a3a565b600b60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561284c57600080fd5b505af1158015612860573d6000803e3d6000fd5b50506040805184815290517f8765d2bb982ed6ee74d2b03c76c9c129aa4a4e3e6b17bd7cf7830088e9d490549350908190036020019150a150565b600b54600a546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051600093929092169163095ea7b39160448082019260209290919082900301818787803b1580156128f757600080fd5b505af115801561290b573d6000803e3d6000fd5b505050506040513d602081101561292157600080fd5b5050600a546018546040805163af2979eb60e01b815230600482015260248101869052600060448201819052606482018190526001600160a01b03610100909404841660848301524260a48301529151929093169263af2979eb9260c48083019360209383900390910190829087803b15801561299d57600080fd5b505af11580156129b1573d6000803e3d6000fd5b505050506040513d60208110156129c757600080fd5b505192915050565b60006001600160a01b038216612a165760405162461bcd60e51b81526004018080602001828103825260228152602001806134bf6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b4690565b6001600160a01b03808416600090815260066020526040808220548584168352912054612a6c92918216911683612ab9565b611d06838383612e4b565b6000611b2d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123e5565b816001600160a01b0316836001600160a01b031614158015612adb5750600081115b15611d06576001600160a01b03831615612b73576001600160a01b03831660009081526008602052604081205463ffffffff169081612b1b576000612b4d565b6001600160a01b038516600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000612b61828563ffffffff612a7716565b9050612b6f86848484612fa7565b5050505b6001600160a01b03821615611d06576001600160a01b03821660009081526008602052604081205463ffffffff169081612bae576000612be0565b6001600160a01b038416600090815260076020908152604080832063ffffffff60001987011684529091529020600101545b90506000612bf4828563ffffffff61247c16565b9050611ff485848484612fa7565b6001600160a01b038216612c475760405162461bcd60e51b81526004018080602001828103825260218152602001806135986021913960400191505060405180910390fd5b612c8a81604051806060016040528060228152602001613295602291396001600160a01b038516600090815260208190526040902054919063ffffffff6123e516565b6001600160a01b038316600090815260208190526040902055600254612cb6908263ffffffff612a7716565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b612d0882826129cf565b612d435760405162461bcd60e51b81526004018080602001828103825260218152602001806133ac6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183612db45760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612439578181015183820152602001612421565b506000838581612dc057fe5b0495945050505050565b612dd482826129cf565b15612e26576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038316612e905760405162461bcd60e51b81526004018080602001828103825260258152602001806135b96025913960400191505060405180910390fd5b6001600160a01b038216612ed55760405162461bcd60e51b81526004018080602001828103825260238152602001806132726023913960400191505060405180910390fd5b612f1881604051806060016040528060268152602001613335602691396001600160a01b038616600090815260208190526040902054919063ffffffff6123e516565b6001600160a01b038085166000908152602081905260408082209390935590841681522054612f4d908263ffffffff61247c16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000612fcb436040518060600160405280603f81526020016133cd603f913961310c565b905060008463ffffffff1611801561301457506001600160a01b038516600090815260076020908152604080832063ffffffff6000198901811685529252909120548282169116145b15613051576001600160a01b038516600090815260076020908152604080832063ffffffff600019890116845290915290206001018290556130c2565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600784528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260089092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b60008164010000000084106131625760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612439578181015183820152602001612421565b509192915050565b604080518082019091526000808252602082015290565b6001600160a01b0382166131dc576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6002546131ef908263ffffffff61247c16565b6002556001600160a01b03821660009081526020819052604090205461321b908263ffffffff61247c16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f2061646472657373495453546f6b656e3a3a73657443616c6c657252657761726444697669736f723a20746f6f20736d616c6c45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365495453546f6b656e3a3a736574556e69737761705632526f757465723a20616c726561647920736574495453546f6b656e3a3a736574526562616c616e636544697669736f723a20746f6f20736d616c6c526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429495453546f6b656e3a3a736574556e69737761705632506169723a20616c726561647920736574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365596f7520617265206e6f742070617274206f66207468652073796e6469636174652e4552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636544656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f495453546f6b656e3a3a7365744c69717569646974794c6f636b44697669736f723a20746f6f20736d616c6ca265627a7a7231582097e76221b2f69024e2415dc7d20fcab15b78c8c55c560269663fbbda5a7d760864736f6c634300051100326080604052600180546001600160a01b03191661dead17905534801561002457600080fd5b506040516109193803806109198339818101604052602081101561004757600080fd5b5051600080546001600160a01b03199081163317909155600280546001600160a01b0390931692909116919091179055610893806100866000396000f3fe6080604052600436106100345760003560e01c806361d027b314610036578063d246d41114610067578063f49930181461007c575b005b34801561004257600080fd5b5061004b6100b8565b604080516001600160a01b039092168252519081900360200190f35b34801561007357600080fd5b5061004b6100c7565b34801561008857600080fd5b506100a66004803603602081101561009f57600080fd5b50356100d6565b60408051918252519081900360200190f35b6002546001600160a01b031681565b6001546001600160a01b031681565b600080546001600160a01b03163314610123576040805162461bcd60e51b815260206004820152600a60248201526937b7363c903a37b5b2b760b11b604482015290519081900360640190fd5b61012d47836102fb565b60008054604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561017957600080fd5b505afa15801561018d573d6000803e3d6000fd5b505050506040513d60208110156101a357600080fd5b5051905060006101b9828563ffffffff6106d716565b600080546040805163a9059cbb60e01b81523260048201526024810185905290519394506001600160a01b039091169263a9059cbb92604480840193602093929083900390910190829087803b15801561021257600080fd5b505af1158015610226573d6000803e3d6000fd5b505050506040513d602081101561023c57600080fd5b50506000546001546001600160a01b039182169163a9059cbb9116610267858563ffffffff61072016565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102b657600080fd5b505af11580156102ca573d6000803e3d6000fd5b505050506040513d60208110156102e057600080fd5b506102f39050828263ffffffff61072016565b949350505050565b6040805160028082526060808301845292602083019080388339505060005460408051630b4a282f60e11b815290519394506001600160a01b0390911692631694505e92506004808301926020929190829003018186803b15801561035f57600080fd5b505afa158015610373573d6000803e3d6000fd5b505050506040513d602081101561038957600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039092169163ad5c464891600480820192602092909190829003018186803b1580156103cd57600080fd5b505afa1580156103e1573d6000803e3d6000fd5b505050506040513d60208110156103f757600080fd5b50518151829060009061040657fe5b6001600160a01b03928316602091820292909201015260005482519116908290600190811061043157fe5b6001600160a01b0390921660209283029190910190910152600061045b848463ffffffff6106d716565b6002546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610496573d6000803e3d6000fd5b5060005460408051630b4a282f60e11b815290516001600160a01b039092169163095ea7b3918391631694505e91600480820192602092909190829003018186803b1580156104e457600080fd5b505afa1580156104f8573d6000803e3d6000fd5b505050506040513d602081101561050e57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018890525160448083019260209291908290030181600087803b15801561055e57600080fd5b505af1158015610572573d6000803e3d6000fd5b505050506040513d602081101561058857600080fd5b505060005460408051630b4a282f60e11b815290516001600160a01b0390921691631694505e91600480820192602092909190829003018186803b1580156105cf57600080fd5b505afa1580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b50516001600160a01b031663b6f9de95610619868463ffffffff61072016565b60008530426040518663ffffffff1660e01b81526004018085815260200180602001846001600160a01b03166001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610691578181015183820152602001610679565b50505050905001955050505050506000604051808303818588803b1580156106b857600080fd5b505af11580156106cc573d6000803e3d6000fd5b505050505050505050565b600061071983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610762565b9392505050565b600061071983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610804565b600081836107ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107b357818101518382015260200161079b565b50505050905090810190601f1680156107e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816107fa57fe5b0495945050505050565b600081848411156108565760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156107b357818101518382015260200161079b565b50505090039056fea265627a7a72315820f27748cb43ee74c3262f4e32d4fcd53ea22b779e360a974872f04a642ff9fb1464736f6c634300051100324552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373