0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a457c2d71161008a578063c9567bf911610064578063c9567bf914610441578063dd62ed3e14610456578063f2fde38b1461049c578063fb6778e9146104bc57600080fd5b8063a457c2d7146103b5578063a9059cbb146103d5578063b097b433146103f557600080fd5b8063715018a61461030e5780637173163e14610323578063718da7ee146103385780638da5cb5b146103585780638ebfc7961461038057806395d89b41146103a057600080fd5b8063313ce56711610123578063313ce56714610247578063320350b214610263578063382c96291461028357806339509351146102a357806351bc3c85146102c357806370a08231146102d857600080fd5b806306fdde0314610176578063095ea7b3146101a157806317f0a135146101d157806318160ddd146101f357806323b872dd1461021257806330409cf71461023257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104dc565b6040516101989190611c0d565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611c70565b61056e565b6040519015158152602001610198565b3480156101dd57600080fd5b506101f16101ec366004611c9c565b610585565b005b3480156101ff57600080fd5b506002545b604051908152602001610198565b34801561021e57600080fd5b506101c161022d366004611cb5565b610666565b34801561023e57600080fd5b506101f1610710565b34801561025357600080fd5b5060405160128152602001610198565b34801561026f57600080fd5b506101f161027e366004611cf6565b6107a6565b34801561028f57600080fd5b506101f161029e366004611c9c565b610856565b3480156102af57600080fd5b506101c16102be366004611c70565b610932565b3480156102cf57600080fd5b506101f161096e565b3480156102e457600080fd5b506102046102f3366004611d18565b6001600160a01b031660009081526020819052604090205490565b34801561031a57600080fd5b506101f1610a09565b34801561032f57600080fd5b506101f1610a3f565b34801561034457600080fd5b506101f1610353366004611d18565b610aed565b34801561036457600080fd5b506005546040516001600160a01b039091168152602001610198565b34801561038c57600080fd5b506101f161039b366004611d43565b610b65565b3480156103ac57600080fd5b5061018b610beb565b3480156103c157600080fd5b506101c16103d0366004611c70565b610bfa565b3480156103e157600080fd5b506101c16103f0366004611c70565b610c93565b34801561040157600080fd5b50600b54600c54600f54601054601154601254604080519687526020870195909552938501929092526060840152608083015260a082015260c001610198565b34801561044d57600080fd5b506101f1610ca0565b34801561046257600080fd5b50610204610471366004611d7c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104a857600080fd5b506101f16104b7366004611d18565b6110b7565b3480156104c857600080fd5b506101f16104d7366004611cf6565b61114f565b6060600380546104eb90611daa565b80601f016020809104026020016040519081016040528092919081815260200182805461051790611daa565b80156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b600061057b33848461124c565b5060015b92915050565b6005546001600160a01b031633146105b85760405162461bcd60e51b81526004016105af90611dde565b60405180910390fd5b60018110156106095760405162461bcd60e51b815260206004820152601e60248201527f4d61782074782063616e74206265206c6f776572207468616e20302e3125000060448201526064016105af565b6103e88161061660025490565b6106209190611e29565b61062a9190611e40565b600f8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906020015b60405180910390a150565b6000610673848484611370565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156106f85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105af565b610705853385840361124c565b506001949350505050565b6007546001600160a01b0316331461076a5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206665652072656365697665722063616e207472696767657200000060448201526064016105af565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107a3573d6000803e3d6000fd5b50565b6005546001600160a01b031633146107d05760405162461bcd60e51b81526004016105af90611dde565b612710826107dd60025490565b6107e79190611e29565b6107f19190611e40565b6011556127108161080160025490565b61080b9190611e29565b6108159190611e40565b60125560408051838152602081018390527f2b3f4c022d9943b151090e389857495bb9d8493714259cc19a540f5a11475fb191015b60405180910390a15050565b6005546001600160a01b031633146108805760405162461bcd60e51b81526004016105af90611dde565b60018110156108dc5760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c65742063616e74206265206c6f776572207468616e20302e604482015261312560f01b60648201526084016105af565b6103e8816108e960025490565b6108f39190611e29565b6108fd9190611e40565b60108190556040519081527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0019060200161065b565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161057b918590610969908690611e62565b61124c565b6007546001600160a01b031633148061099157506005546001600160a01b031633145b6109dd5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206665652072656365697665722063616e207472696767657200000060448201526064016105af565b306000908152602081905260409020546109f681611841565b478015610a0557610a056119da565b5050565b6005546001600160a01b03163314610a335760405162461bcd60e51b81526004016105af90611dde565b610a3d6000611a27565b565b6005546001600160a01b03163314610a695760405162461bcd60e51b81526004016105af90611dde565b600254600f556002546010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a9f60025490565b60405190815260200160405180910390a17f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e001610ada60025490565b60405190815260200160405180910390a1565b6005546001600160a01b03163314610b175760405162461bcd60e51b81526004016105af90611dde565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f27aae5db36d94179909d019ae0b1ac7c16d96d953148f63c0f6a0a9c8ead79ee9060200161065b565b6005546001600160a01b03163314610b8f5760405162461bcd60e51b81526004016105af90611dde565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9910161084a565b6060600480546104eb90611daa565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610c7c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105af565b610c89338585840361124c565b5060019392505050565b600061057b338484611370565b6005546001600160a01b03163314610cca5760405162461bcd60e51b81526004016105af90611dde565b601454600160a01b900460ff1615610d245760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105af565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610d5c90309061096960025490565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611e75565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190611e75565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ea6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eca9190611e75565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610f12816001600160a01b031660009081526020819052604090205490565b600080610f276005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610f8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb49190611e92565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561100d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110319190611ec0565b506014805462ff00ff60a01b19166201000160a01b1790554360088190556009805467ffffffffffffffff191667ffffffffffffffff90921691909117905530600090815260066020526040808220805460ff19166001179055600b829055517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f9190a1565b6005546001600160a01b031633146110e15760405162461bcd60e51b81526004016105af90611dde565b6001600160a01b0381166111465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105af565b6107a381611a27565b6005546001600160a01b031633146111795760405162461bcd60e51b81526004016105af90611dde565b60638211156111c25760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420627579207461782076616c756560581b60448201526064016105af565b606381111561120c5760405162461bcd60e51b8152602060048201526016602482015275496e76616c69642073656c6c207461782076616c756560501b60448201526064016105af565b600b829055600c81905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910161084a565b6001600160a01b0383166112ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105af565b6001600160a01b03821661130f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113965760405162461bcd60e51b81526004016105af90611edd565b6001600160a01b0382166113bc5760405162461bcd60e51b81526004016105af90611f22565b6000811161141e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105af565b60006114326005546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561146157506005546001600160a01b03848116911614155b80156114775750601454600160a81b900460ff16155b156118165761149c6064611496600b5485611a7990919063ffffffff16565b90611a8c565b6014549091506001600160a01b0385811691161480156114ca57506013546001600160a01b03848116911614155b80156114ef57506001600160a01b03831660009081526006602052604090205460ff16155b156115f957600f548211156115465760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f7478416d6f756e744c696d69742e000000000060448201526064016105af565b60105482611569856001600160a01b031660009081526020819052604090205490565b6115739190611e62565b11156115c15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105af565b4360085460036115d19190611e62565b11156115e357823b156115e357600080fd5b600e80549060006115f383611f65565b91905055505b6014546001600160a01b0384811691161480159061163057506001600160a01b03831660009081526006602052604090205460ff16155b156116b05760105482611658856001600160a01b031660009081526020819052604090205490565b6116629190611e62565b11156116b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105af565b6014546001600160a01b0384811691161480156116d657506001600160a01b0384163014155b156116f8576116f56064611496600c5485611a7990919063ffffffff16565b90505b30600090815260208190526040902054601454600160a81b900460ff1615801561172f57506014546001600160a01b038581169116145b80156117445750601454600160b01b900460ff165b8015611751575060115481115b80156117605750600d54600e54115b156118145760095467ffffffffffffffff1643111561177f576000600a555b6003600a54106117d15760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016105af565b6117ee6117e9846117e484601254611a98565b611a98565b611841565b4780156117fd576117fd6119da565b600a805490600061180d83611f65565b9190505550505b505b801561182757611827843083611aad565b61183b84846118368585611c01565b611aad565b50505050565b6014805460ff60a81b1916600160a81b1790556009805467ffffffffffffffff431667ffffffffffffffff1990911617905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118a8576118a8611f7e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119259190611e75565b8160018151811061193857611938611f7e565b6001600160a01b03928316602091820292909201015260135461195e913091168461124c565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611997908590600090869030904290600401611f94565b600060405180830381600087803b1580156119b157600080fd5b505af11580156119c5573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6007546040516000916001600160a01b03169047908381818185875af1925050503d806000811461183b576040519150601f19603f3d011682016040523d82523d6000602084013e61183b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611a858284611e29565b9392505050565b6000611a858284611e40565b6000818311611aa75782611a85565b50919050565b6001600160a01b038316611ad35760405162461bcd60e51b81526004016105af90611edd565b6001600160a01b038216611af95760405162461bcd60e51b81526004016105af90611f22565b6001600160a01b03831660009081526020819052604090205481811015611b715760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105af565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ba8908490611e62565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bf491815260200190565b60405180910390a361183b565b6000611a858284612005565b600060208083528351808285015260005b81811015611c3a57858101830151858201604001528201611c1e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a357600080fd5b60008060408385031215611c8357600080fd5b8235611c8e81611c5b565b946020939093013593505050565b600060208284031215611cae57600080fd5b5035919050565b600080600060608486031215611cca57600080fd5b8335611cd581611c5b565b92506020840135611ce581611c5b565b929592945050506040919091013590565b60008060408385031215611d0957600080fd5b50508035926020909101359150565b600060208284031215611d2a57600080fd5b8135611a8581611c5b565b80151581146107a357600080fd5b60008060408385031215611d5657600080fd5b8235611d6181611c5b565b91506020830135611d7181611d35565b809150509250929050565b60008060408385031215611d8f57600080fd5b8235611d9a81611c5b565b91506020830135611d7181611c5b565b600181811c90821680611dbe57607f821691505b602082108103611aa757634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761057f5761057f611e13565b600082611e5d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561057f5761057f611e13565b600060208284031215611e8757600080fd5b8151611a8581611c5b565b600080600060608486031215611ea757600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611ed257600080fd5b8151611a8581611d35565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060018201611f7757611f77611e13565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fe45784516001600160a01b031683529383019391830191600101611fbf565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561057f5761057f611e1356fea2646970667358221220be6000f32066f7dbe9db81587085b9b1b9d3b3673c82063655ec9a099a08a8f464736f6c63430008130033
0x60806040526000600a8190556014600b819055600c8190556001600d55600e91909155805461ffff60a81b191690553480156200003b57600080fd5b506040518060400160405280600681526020016546726573636f60d01b8152506040518060400160405280600681526020016546524553434f60d01b81525081600390816200008b9190620003d7565b5060046200009a8282620003d7565b505050620000b7620000b1620001f060201b60201c565b620001f4565b6b033b2e3c9fd0803ce80000006103e8620000d482600a620004b9565b620000e09190620004d9565b600f556103e8620000f382600a620004b9565b620000ff9190620004d9565b60105561271062000112826005620004b9565b6200011e9190620004d9565b601155612710620001318260c8620004b9565b6200013d9190620004d9565b601255600780546001600160a01b0319167316f685d1d286debf4ad3d66b38cf5eaabcbd82021790556001600660006200017f6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526006909352818320805485166001908117909155600754909116835291208054909216179055620001e9620001e23390565b8262000246565b5062000512565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620002a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620002b59190620004fc565b90915550506001600160a01b03821660009081526020819052604081208054839290620002e4908490620004fc565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035e57607f821691505b6020821081036200037f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200032e57600081815260208120601f850160051c81016020861015620003ae5750805b601f850160051c820191505b81811015620003cf57828155600101620003ba565b505050505050565b81516001600160401b03811115620003f357620003f362000333565b6200040b8162000404845462000349565b8462000385565b602080601f8311600181146200044357600084156200042a5750858301515b600019600386901b1c1916600185901b178555620003cf565b600085815260208120601f198616915b82811015620004745788860151825594840194600190910190840162000453565b5085821015620004935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620004d357620004d3620004a3565b92915050565b600082620004f757634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004d357620004d3620004a3565b61204e80620005226000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a457c2d71161008a578063c9567bf911610064578063c9567bf914610441578063dd62ed3e14610456578063f2fde38b1461049c578063fb6778e9146104bc57600080fd5b8063a457c2d7146103b5578063a9059cbb146103d5578063b097b433146103f557600080fd5b8063715018a61461030e5780637173163e14610323578063718da7ee146103385780638da5cb5b146103585780638ebfc7961461038057806395d89b41146103a057600080fd5b8063313ce56711610123578063313ce56714610247578063320350b214610263578063382c96291461028357806339509351146102a357806351bc3c85146102c357806370a08231146102d857600080fd5b806306fdde0314610176578063095ea7b3146101a157806317f0a135146101d157806318160ddd146101f357806323b872dd1461021257806330409cf71461023257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061018b6104dc565b6040516101989190611c0d565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004611c70565b61056e565b6040519015158152602001610198565b3480156101dd57600080fd5b506101f16101ec366004611c9c565b610585565b005b3480156101ff57600080fd5b506002545b604051908152602001610198565b34801561021e57600080fd5b506101c161022d366004611cb5565b610666565b34801561023e57600080fd5b506101f1610710565b34801561025357600080fd5b5060405160128152602001610198565b34801561026f57600080fd5b506101f161027e366004611cf6565b6107a6565b34801561028f57600080fd5b506101f161029e366004611c9c565b610856565b3480156102af57600080fd5b506101c16102be366004611c70565b610932565b3480156102cf57600080fd5b506101f161096e565b3480156102e457600080fd5b506102046102f3366004611d18565b6001600160a01b031660009081526020819052604090205490565b34801561031a57600080fd5b506101f1610a09565b34801561032f57600080fd5b506101f1610a3f565b34801561034457600080fd5b506101f1610353366004611d18565b610aed565b34801561036457600080fd5b506005546040516001600160a01b039091168152602001610198565b34801561038c57600080fd5b506101f161039b366004611d43565b610b65565b3480156103ac57600080fd5b5061018b610beb565b3480156103c157600080fd5b506101c16103d0366004611c70565b610bfa565b3480156103e157600080fd5b506101c16103f0366004611c70565b610c93565b34801561040157600080fd5b50600b54600c54600f54601054601154601254604080519687526020870195909552938501929092526060840152608083015260a082015260c001610198565b34801561044d57600080fd5b506101f1610ca0565b34801561046257600080fd5b50610204610471366004611d7c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104a857600080fd5b506101f16104b7366004611d18565b6110b7565b3480156104c857600080fd5b506101f16104d7366004611cf6565b61114f565b6060600380546104eb90611daa565b80601f016020809104026020016040519081016040528092919081815260200182805461051790611daa565b80156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b600061057b33848461124c565b5060015b92915050565b6005546001600160a01b031633146105b85760405162461bcd60e51b81526004016105af90611dde565b60405180910390fd5b60018110156106095760405162461bcd60e51b815260206004820152601e60248201527f4d61782074782063616e74206265206c6f776572207468616e20302e3125000060448201526064016105af565b6103e88161061660025490565b6106209190611e29565b61062a9190611e40565b600f8190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906020015b60405180910390a150565b6000610673848484611370565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156106f85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016105af565b610705853385840361124c565b506001949350505050565b6007546001600160a01b0316331461076a5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206665652072656365697665722063616e207472696767657200000060448201526064016105af565b6007546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107a3573d6000803e3d6000fd5b50565b6005546001600160a01b031633146107d05760405162461bcd60e51b81526004016105af90611dde565b612710826107dd60025490565b6107e79190611e29565b6107f19190611e40565b6011556127108161080160025490565b61080b9190611e29565b6108159190611e40565b60125560408051838152602081018390527f2b3f4c022d9943b151090e389857495bb9d8493714259cc19a540f5a11475fb191015b60405180910390a15050565b6005546001600160a01b031633146108805760405162461bcd60e51b81526004016105af90611dde565b60018110156108dc5760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c65742063616e74206265206c6f776572207468616e20302e604482015261312560f01b60648201526084016105af565b6103e8816108e960025490565b6108f39190611e29565b6108fd9190611e40565b60108190556040519081527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0019060200161065b565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161057b918590610969908690611e62565b61124c565b6007546001600160a01b031633148061099157506005546001600160a01b031633145b6109dd5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206665652072656365697665722063616e207472696767657200000060448201526064016105af565b306000908152602081905260409020546109f681611841565b478015610a0557610a056119da565b5050565b6005546001600160a01b03163314610a335760405162461bcd60e51b81526004016105af90611dde565b610a3d6000611a27565b565b6005546001600160a01b03163314610a695760405162461bcd60e51b81526004016105af90611dde565b600254600f556002546010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a9f60025490565b60405190815260200160405180910390a17f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e001610ada60025490565b60405190815260200160405180910390a1565b6005546001600160a01b03163314610b175760405162461bcd60e51b81526004016105af90611dde565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f27aae5db36d94179909d019ae0b1ac7c16d96d953148f63c0f6a0a9c8ead79ee9060200161065b565b6005546001600160a01b03163314610b8f5760405162461bcd60e51b81526004016105af90611dde565b6001600160a01b038216600081815260066020908152604091829020805460ff19168515159081179091558251938452908301527f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa9910161084a565b6060600480546104eb90611daa565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610c7c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105af565b610c89338585840361124c565b5060019392505050565b600061057b338484611370565b6005546001600160a01b03163314610cca5760405162461bcd60e51b81526004016105af90611dde565b601454600160a01b900460ff1615610d245760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105af565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610d5c90309061096960025490565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611e75565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e599190611e75565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ea6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eca9190611e75565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610f12816001600160a01b031660009081526020819052604090205490565b600080610f276005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610f8f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb49190611e92565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561100d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110319190611ec0565b506014805462ff00ff60a01b19166201000160a01b1790554360088190556009805467ffffffffffffffff191667ffffffffffffffff90921691909117905530600090815260066020526040808220805460ff19166001179055600b829055517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f9190a1565b6005546001600160a01b031633146110e15760405162461bcd60e51b81526004016105af90611dde565b6001600160a01b0381166111465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105af565b6107a381611a27565b6005546001600160a01b031633146111795760405162461bcd60e51b81526004016105af90611dde565b60638211156111c25760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420627579207461782076616c756560581b60448201526064016105af565b606381111561120c5760405162461bcd60e51b8152602060048201526016602482015275496e76616c69642073656c6c207461782076616c756560501b60448201526064016105af565b600b829055600c81905560408051838152602081018390527f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1910161084a565b6001600160a01b0383166112ae5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105af565b6001600160a01b03821661130f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166113965760405162461bcd60e51b81526004016105af90611edd565b6001600160a01b0382166113bc5760405162461bcd60e51b81526004016105af90611f22565b6000811161141e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105af565b60006114326005546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561146157506005546001600160a01b03848116911614155b80156114775750601454600160a81b900460ff16155b156118165761149c6064611496600b5485611a7990919063ffffffff16565b90611a8c565b6014549091506001600160a01b0385811691161480156114ca57506013546001600160a01b03848116911614155b80156114ef57506001600160a01b03831660009081526006602052604090205460ff16155b156115f957600f548211156115465760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f7478416d6f756e744c696d69742e000000000060448201526064016105af565b60105482611569856001600160a01b031660009081526020819052604090205490565b6115739190611e62565b11156115c15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105af565b4360085460036115d19190611e62565b11156115e357823b156115e357600080fd5b600e80549060006115f383611f65565b91905055505b6014546001600160a01b0384811691161480159061163057506001600160a01b03831660009081526006602052604090205460ff16155b156116b05760105482611658856001600160a01b031660009081526020819052604090205490565b6116629190611e62565b11156116b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105af565b6014546001600160a01b0384811691161480156116d657506001600160a01b0384163014155b156116f8576116f56064611496600c5485611a7990919063ffffffff16565b90505b30600090815260208190526040902054601454600160a81b900460ff1615801561172f57506014546001600160a01b038581169116145b80156117445750601454600160b01b900460ff165b8015611751575060115481115b80156117605750600d54600e54115b156118145760095467ffffffffffffffff1643111561177f576000600a555b6003600a54106117d15760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016105af565b6117ee6117e9846117e484601254611a98565b611a98565b611841565b4780156117fd576117fd6119da565b600a805490600061180d83611f65565b9190505550505b505b801561182757611827843083611aad565b61183b84846118368585611c01565b611aad565b50505050565b6014805460ff60a81b1916600160a81b1790556009805467ffffffffffffffff431667ffffffffffffffff1990911617905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118a8576118a8611f7e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119259190611e75565b8160018151811061193857611938611f7e565b6001600160a01b03928316602091820292909201015260135461195e913091168461124c565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611997908590600090869030904290600401611f94565b600060405180830381600087803b1580156119b157600080fd5b505af11580156119c5573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6007546040516000916001600160a01b03169047908381818185875af1925050503d806000811461183b576040519150601f19603f3d011682016040523d82523d6000602084013e61183b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611a858284611e29565b9392505050565b6000611a858284611e40565b6000818311611aa75782611a85565b50919050565b6001600160a01b038316611ad35760405162461bcd60e51b81526004016105af90611edd565b6001600160a01b038216611af95760405162461bcd60e51b81526004016105af90611f22565b6001600160a01b03831660009081526020819052604090205481811015611b715760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105af565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611ba8908490611e62565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bf491815260200190565b60405180910390a361183b565b6000611a858284612005565b600060208083528351808285015260005b81811015611c3a57858101830151858201604001528201611c1e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a357600080fd5b60008060408385031215611c8357600080fd5b8235611c8e81611c5b565b946020939093013593505050565b600060208284031215611cae57600080fd5b5035919050565b600080600060608486031215611cca57600080fd5b8335611cd581611c5b565b92506020840135611ce581611c5b565b929592945050506040919091013590565b60008060408385031215611d0957600080fd5b50508035926020909101359150565b600060208284031215611d2a57600080fd5b8135611a8581611c5b565b80151581146107a357600080fd5b60008060408385031215611d5657600080fd5b8235611d6181611c5b565b91506020830135611d7181611d35565b809150509250929050565b60008060408385031215611d8f57600080fd5b8235611d9a81611c5b565b91506020830135611d7181611c5b565b600181811c90821680611dbe57607f821691505b602082108103611aa757634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761057f5761057f611e13565b600082611e5d57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561057f5761057f611e13565b600060208284031215611e8757600080fd5b8151611a8581611c5b565b600080600060608486031215611ea757600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611ed257600080fd5b8151611a8581611d35565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600060018201611f7757611f77611e13565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fe45784516001600160a01b031683529383019391830191600101611fbf565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561057f5761057f611e1356fea2646970667358221220be6000f32066f7dbe9db81587085b9b1b9d3b3673c82063655ec9a099a08a8f464736f6c63430008130033