0x6080604052600436106103c75760003560e01c8063715018a6116101f2578063bc77169d1161010d578063dd62ed3e116100a0578063f6540ec71161006f578063f6540ec714610c6f578063fb78680d14610c85578063fdb78c0e14610ca5578063fe575a8714610cc657600080fd5b8063dd62ed3e14610bd4578063eafb5a3c14610c1a578063ee5d9c2d14610c3a578063eec2744e14610c4f57600080fd5b8063c6831cd8116100dc578063c6831cd814610ae9578063cab5ebea14610b2d578063cf84770614610b4d578063d3f6a15714610bb457600080fd5b8063bc77169d14610a44578063becdf13f14610a64578063c21f9a8a14610a84578063c2fa418f14610aa557600080fd5b80638da5cb5b11610185578063a9059cbb11610154578063a9059cbb146109c4578063aa22b172146109e4578063aa54547314610a04578063b6f8f8dc14610a2457600080fd5b80638da5cb5b1461090f57806395d89b4114610957578063962dfc7514610984578063a457c2d7146109a457600080fd5b806388f82020116101c157806388f82020146108d6578063893d20e81461090f5780638a63bd9b1461092d5780638a8c523c1461094257600080fd5b8063715018a614610848578063751039fc1461085d5780637b45d4311461087257806380c581d1146108b657600080fd5b806333251a0b116102e25780634fbee193116102755780635c24b074116102445780635c24b074146107dc57806364038409146107fc5780636fd8fb7a1461081257806370a082311461082857600080fd5b80634fbee1931461074f57806350a8e0161461078857806355dbc369146107a7578063590ffdce146107bc57600080fd5b80633f3cf56c116102b15780633f3cf56c146106d5578063452ed4f1146106f55780634ada218b146107155780634fb2e45d1461072f57600080fd5b806333251a0b1461065557806337e294d514610675578063384f36b61461069557806339509351146106b557600080fd5b806318160ddd1161035a5780632b112e49116103295780632b112e49146105e85780632c76235a146105fd5780632d83811914610613578063313ce5671461063357600080fd5b806318160ddd146105105780631b6afa2d1461052f57806323b872dd146105a857806326003957146105c857600080fd5b8063095ea7b311610396578063095ea7b314610480578063122fea3b146104b057806313b4a7f4146104d057806313e46192146104f057600080fd5b806303fd2a45146103d357806305bbedb61461040657806306fdde03146104285780630758d9241461046057600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561041257600080fd5b50610426610421366004613c75565b610ce6565b005b34801561043457600080fd5b5060408051808201909152600681526554657374434160d01b60208201525b6040516103fd9190613d4c565b34801561046c57600080fd5b506016546103e9906001600160a01b031681565b34801561048c57600080fd5b506104a061049b366004613da1565b610d81565b60405190151581526020016103fd565b3480156104bc57600080fd5b506018546103e9906001600160a01b031681565b3480156104dc57600080fd5b506104266104eb366004613dcd565b610d97565b3480156104fc57600080fd5b5061042661050b366004613e06565b610ef6565b34801561051c57600080fd5b50600e545b6040519081526020016103fd565b34801561053b57600080fd5b506015546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a0016103fd565b3480156105b457600080fd5b506104a06105c3366004613e34565b611258565b3480156105d457600080fd5b506104266105e3366004613e75565b6112d0565b3480156105f457600080fd5b506105216113b8565b34801561060957600080fd5b50610521602a5481565b34801561061f57600080fd5b5061052161062e366004613e97565b6113eb565b34801561063f57600080fd5b50600d5460405160ff90911681526020016103fd565b34801561066157600080fd5b50610426610670366004613eb0565b61146f565b34801561068157600080fd5b50601c546103e9906001600160a01b031681565b3480156106a157600080fd5b506104266106b0366004613eb0565b6114fb565b3480156106c157600080fd5b506104a06106d0366004613da1565b61155c565b3480156106e157600080fd5b506104266106f0366004613e75565b611598565b34801561070157600080fd5b506017546103e9906001600160a01b031681565b34801561072157600080fd5b506027546104a09060ff1681565b34801561073b57600080fd5b5061042661074a366004613eb0565b61168b565b34801561075b57600080fd5b506104a061076a366004613eb0565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561079457600080fd5b506027546104a090610100900460ff1681565b3480156107b357600080fd5b506105216117b2565b3480156107c857600080fd5b506104266107d7366004613e06565b611820565b3480156107e857600080fd5b506104266107f7366004613eb0565b611875565b34801561080857600080fd5b5061052160225481565b34801561081e57600080fd5b5061052160285481565b34801561083457600080fd5b50610521610843366004613eb0565b611963565b34801561085457600080fd5b506104266119c8565b34801561086957600080fd5b50610426611a47565b34801561087e57600080fd5b506011546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b3480156108c257600080fd5b506104266108d1366004613e06565b611a8c565b3480156108e257600080fd5b506104a06108f1366004613eb0565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561091b57600080fd5b506000546001600160a01b03166103e9565b34801561093957600080fd5b506104a0611bd9565b34801561094e57600080fd5b50610426611c24565b34801561096357600080fd5b506040805180820190915260048152635453434160e01b6020820152610453565b34801561099057600080fd5b50601b546103e9906001600160a01b031681565b3480156109b057600080fd5b506104a06109bf366004613da1565b611dd4565b3480156109d057600080fd5b506104a06109df366004613da1565b611e0b565b3480156109f057600080fd5b506104266109ff366004613edf565b611e22565b348015610a1057600080fd5b50610426610a1f366004613f22565b611ebf565b348015610a3057600080fd5b50610426610a3f366004613f76565b61200b565b348015610a5057600080fd5b50610426610a5f366004613f22565b6120a9565b348015610a7057600080fd5b50610426610a7f366004613f22565b6121f5565b348015610a9057600080fd5b506029546104a090600160a01b900460ff1681565b348015610ab157600080fd5b506013546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b348015610af557600080fd5b506012546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b348015610b3957600080fd5b50610426610b48366004613fc1565b612341565b348015610b5957600080fd5b50601454610b869061ffff80821691620100008104821691600160201b8204811691600160301b90041684565b6040805161ffff958616815293851660208501529184169183019190915290911660608201526080016103fd565b348015610bc057600080fd5b50610426610bcf366004613dcd565b6123c3565b348015610be057600080fd5b50610521610bef366004613dcd565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610c2657600080fd5b50610426610c35366004613eb0565b61241b565b348015610c4657600080fd5b5061042661274f565b348015610c5b57600080fd5b50610426610c6a366004613e06565b61280e565b348015610c7b57600080fd5b5061052160245481565b348015610c9157600080fd5b50610426610ca0366004613fde565b612872565b348015610cb157600080fd5b50601c546104a090600160a81b900460ff1681565b348015610cd257600080fd5b506104a0610ce1366004613eb0565b6128db565b6000546001600160a01b03163314610d195760405162461bcd60e51b8152600401610d1090614010565b60405180910390fd5b6029546040516302ddf6db60e11b81526001600160a01b03909116906305bbedb690610d4b908590859060040161407f565b600060405180830381600087803b158015610d6557600080fd5b505af1158015610d79573d6000803e3d6000fd5b505050505050565b6000610d8e33848461294a565b50600192915050565b6000546001600160a01b03163314610dc15760405162461bcd60e51b8152600401610d1090614010565b600a5460ff16610e0c5760405162461bcd60e51b8152602060048201526016602482015275233ab731ba34b7b71030b63932b0b23c903ab9b2b21760511b6044820152606401610d10565b806001600160a01b0316826001600160a01b03161415610e7a576001600160a01b0381166000908152600b602090815260408083208054600160ff19918216811790925560099093529220805490911682179055610e6b908290611820565b610e76816001610ef6565b5050565b6001600160a01b038281166000818152600b602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526009909252808320805486168317905592825291902080549092168117909155610ee4908390611820565b610eef816001611820565b610e6b8260015b6000546001600160a01b03163314610f205760405162461bcd60e51b8152600401610d1090614010565b60018115151415611055576001600160a01b03821660009081526007602052604090205460ff1615610f945760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610d10565b6001600160a01b03821660009081526001602052604090205415610fee576001600160a01b038216600090815260016020526040902054610fd4906113eb565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b80610e76576001600160a01b03821660009081526007602052604090205460ff166110c25760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610d10565b60085460011415611131576001600160a01b038216600090815260026020908152604080832083905560079091529020805460ff19169055600880548061110b5761110b6140a3565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b60005b60085481101561125357826001600160a01b03166008828154811061115b5761115b6140b9565b6000918252602090912001546001600160a01b031614156112415760088054611186906001906140e5565b81548110611196576111966140b9565b600091825260209091200154600880546001600160a01b0390921691839081106111c2576111c26140b9565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff19169055600880548061121a5761121a6140a3565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b8061124b816140fc565b915050611134565b505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146112bd576001600160a01b0384166000908152600560209081526040808320338452909152812080548492906112b79084906140e5565b90915550505b6112c8848484612a43565b949350505050565b6000546001600160a01b031633146112fa5760405162461bcd60e51b8152600401610d1090614010565b60008183600e5461130b9190614117565b6113159190614136565b90506103e8600e546113279190614136565b8110156113915760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e31604482015271129037b3103a37ba30b61039bab838363c9760711b6064820152608401610d10565b6023819055600c5482906113a6908590614117565b6113b09190614136565b602455505050565b60006113c46000611963565b6113cf61dead611963565b6113d99190614158565b600e546113e691906140e5565b905090565b6000600f548211156114525760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610d10565b600061145c612e4b565b90506114688184614136565b9392505050565b6000546001600160a01b031633146114995760405162461bcd60e51b8152600401610d1090614010565b6029546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146115255760405162461bcd60e51b8152600401610d1090614010565b602754610100900460ff161561153a57600080fd5b601880546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d8e918590611593908690614158565b61294a565b6000546001600160a01b031633146115c25760405162461bcd60e51b8152600401610d1090614010565b60008183600e546115d39190614117565b6115dd9190614136565b90506103e8600e546115ef9190614136565b8110156116645760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610d10565b6021819055600c548290611679908590614117565b6116839190614136565b602255505050565b6000546001600160a01b031633146116b55760405162461bcd60e51b8152600401610d1090614010565b6001600160a01b0381166116db5760405162461bcd60e51b8152600401610d1090614170565b6001600160a01b03811661dead14156117065760405162461bcd60e51b8152600401610d1090614170565b6000805461171f916001600160a01b0390911690611820565b61172a816001611820565b60008054611740906001600160a01b0316611963565b111561176757600054611765906001600160a01b03168261176082611963565b612a43565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b602954604080516355dbc36960e01b815290516000926001600160a01b0316916355dbc3699160048083019260209291908290030181865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e691906141cd565b6000546001600160a01b0316331461184a5760405162461bcd60e51b8152600401610d1090614010565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461189f5760405162461bcd60e51b8152600401610d1090614010565b602754610100900460ff16156118f75760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920697320616c726561647920696e2e00000000000000006044820152606401610d10565b6001600160a01b0381163014156119415760405162461bcd60e51b815260206004820152600e60248201526d21b0b713ba1031329039b2b6331760911b6044820152606401610d10565b602980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16156119a057506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546119c2906113eb565b92915050565b6000546001600160a01b031633146119f25760405162461bcd60e51b8152600401610d1090614010565b60008054611a0b916001600160a01b0390911690611820565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611a715760405162461bcd60e51b8152600401610d1090614010565b600e546023819055600c546024819055602191909155602255565b6000546001600160a01b03163314611ab65760405162461bcd60e51b8152600401610d1090614010565b80611b23576001600160a01b03828116600081815260036020526040808220805460ff1916905560295490516380c581d160e01b815260048101939093526024830191909152909116906380c581d190604401600060405180830381600087803b158015610d6557600080fd5b60045415611b7d576203f48060045442611b3d91906140e5565b11611b7d5760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b6044820152606401610d10565b6001600160a01b0382811660008181526003602052604090819020805460ff1916600190811790915542600490815560295492516380c581d160e01b8152908101939093526024830152909116906380c581d190604401610d4b565b600080546001600160a01b03163314611c045760405162461bcd60e51b8152600401610d1090614010565b601654611c1e9030906001600160a01b031660001961294a565b50600190565b6000546001600160a01b03163314611c4e5760405162461bcd60e51b8152600401610d1090614010565b60275460ff1615611ca15760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610d10565b602754610100900460ff16611cf85760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610d10565b611d03306001610ef6565b601754611d1a906001600160a01b03166001610ef6565b6029546001600160a01b0316611d3d57602980546001600160a01b031916301790555b602954601754600d54604051631b04570d60e21b81526001600160a01b03928316600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260ff9091166064820152911690636c115c3490608401600060405180830381600087803b158015611daf57600080fd5b505af1925050508015611dc0575060015b506027805460ff1916600117905542602855565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d8e9185906115939086906140e5565b6000611e18338484612a43565b5060019392505050565b6000546001600160a01b03163314611e4c5760405162461bcd60e51b8152600401610d1090614010565b6014805461ffff838116600160201b0265ffff0000000019868316620100000263ffffffff1990941692881692909217929092171617905580611e8f83856141e6565b611e9991906141e6565b6014805461ffff92909216600160301b0261ffff60301b19909216919091179055505050565b6000546001600160a01b03163314611ee95760405162461bcd60e51b8152600401610d1090614010565b60155461ffff90811690851611801590611f13575060155461ffff62010000909104811690841611155b8015611f30575060155461ffff600160201b909104811690831611155b8015611f4d575060155461ffff600160301b909104811690821611155b611f5657600080fd5b60008183611f6486886141e6565b611f6e91906141e6565b611f7891906141e6565b9050610d7a8161ffff161115611f8d57600080fd5b6013805461ffff87811665ffffffffffff19909216620100008883160265ffff0000ffff19161791909117600160201b868316021761ffff60301b1916600160301b91851691909102179055611fe3858261420c565b6013805461ffff92909216600160401b0261ffff60401b199092169190911790555050505050565b6000546001600160a01b031633146120355760405162461bcd60e51b8152600401610d1090614010565b602954604051630d4696eb60e31b81528415156004820152831515602482015282151560448201526001600160a01b0390911690636a34b75890606401600060405180830381600087803b15801561208c57600080fd5b505af11580156120a0573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146120d35760405162461bcd60e51b8152600401610d1090614010565b60155461ffff908116908516118015906120fd575060155461ffff62010000909104811690841611155b801561211a575060155461ffff600160201b909104811690831611155b8015612137575060155461ffff600160301b909104811690821611155b61214057600080fd5b6000818361214e86886141e6565b61215891906141e6565b61216291906141e6565b9050610d7a8161ffff16111561217757600080fd5b6011805461ffff87811665ffffffffffff19909216620100008883160265ffff0000ffff19161791909117600160201b868316021761ffff60301b1916600160301b918516919091021790556121cd858261420c565b6011805461ffff92909216600160401b0261ffff60401b199092169190911790555050505050565b6000546001600160a01b0316331461221f5760405162461bcd60e51b8152600401610d1090614010565b60155461ffff90811690851611801590612249575060155461ffff62010000909104811690841611155b8015612266575060155461ffff600160201b909104811690831611155b8015612283575060155461ffff600160301b909104811690821611155b61228c57600080fd5b6000818361229a86886141e6565b6122a491906141e6565b6122ae91906141e6565b9050610d7a8161ffff1611156122c357600080fd5b6012805461ffff87811665ffffffffffff19909216620100008883160265ffff0000ffff19161791909117600160201b868316021761ffff60301b1916600160301b91851691909102179055612319858261420c565b6012805461ffff92909216600160401b0261ffff60401b199092169190911790555050505050565b6000546001600160a01b0316331461236b5760405162461bcd60e51b8152600401610d1090614010565b601c8054821515600160a81b0260ff60a81b199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906123b890831515815260200190565b60405180910390a150565b6000546001600160a01b031633146123ed5760405162461bcd60e51b8152600401610d1090614010565b601b80546001600160a01b039384166001600160a01b031991821617909155601c8054929093169116179055565b6000546001600160a01b031633146124455760405162461bcd60e51b8152600401610d1090614010565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ae919061422f565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251f919061422f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561256a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258e919061422f565b90506001600160a01b03811661270757816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612600919061422f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561264d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612671919061422f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156126be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e2919061422f565b601780546001600160a01b0319166001600160a01b0392909216919091179055612723565b601780546001600160a01b0319166001600160a01b0383161790555b601680546001600160a01b0319166001600160a01b03841690811790915561125390309060001961294a565b6000546001600160a01b031633146127795760405162461bcd60e51b8152600401610d1090614010565b602754610100900460ff16156127d15760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610d10565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561280b573d6000803e3d6000fd5b50565b6000546001600160a01b031633146128385760405162461bcd60e51b8152600401610d1090614010565b6029546040516377613a2760e11b81526001600160a01b03848116600483015283151560248301529091169063eec2744e90604401610d4b565b6000546001600160a01b0316331461289c5760405162461bcd60e51b8152600401610d1090614010565b8284600e546128ab9190614117565b6128b59190614136565b602555600e5481906128c8908490614117565b6128d29190614136565b60265550505050565b60295460405163fe575a8760e01b81526001600160a01b038381166004830152600092169063fe575a8790602401602060405180830381865afa158015612926573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c2919061424c565b6001600160a01b0383166129965760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610d10565b6001600160a01b0382166129e25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610d10565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612aa95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610d10565b6001600160a01b038316612b0b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610d10565b60008211612b6d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610d10565b612b778484612fdc565b15612d295760275460ff16612bce5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610d10565b6001600160a01b03841660009081526003602052604090205460ff1680612c0d57506001600160a01b03831660009081526003602052604090205460ff165b15612c7557602154821115612c755760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610d10565b6018546001600160a01b03848116911614801590612cac57506001600160a01b03831660009081526003602052604090205460ff16155b15612d295760235482612cbe85611963565b612cc89190614158565b1115612d295760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610d10565b6001600160a01b03841660009081526006602052604090205460019060ff1680612d6b57506001600160a01b03841660009081526006602052604090205460ff165b15612d74575060005b6001600160a01b03841660009081526003602052604090205460ff1615612e3657601c54600160a01b900460ff16158015612db85750601c54600160a81b900460ff165b8015612ddd57506001600160a01b03841660009081526009602052604090205460ff16155b8015612e0257506001600160a01b03851660009081526009602052604090205460ff16155b15612e36576000612e1230611963565b90506025548110612e34576026548110612e2b57506026545b612e3481613099565b505b612e42858585846134b8565b95945050505050565b600f54600e5460009190825b600854811015612fa357826001600060088481548110612e7957612e796140b9565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612ee45750816002600060088481548110612ebd57612ebd6140b9565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612f0157600e54600f54612ef99190614136565b935050505090565b6001600060088381548110612f1857612f186140b9565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612f4790846140e5565b92506002600060088381548110612f6057612f606140b9565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612f8f90836140e5565b915080612f9b816140fc565b915050612e57565b50600e54600f54612fb49190614136565b821015612fd257600e54600f54612fcb9190614136565b9250505090565b612fcb8183614136565b600080546001600160a01b0384811691161480159061300957506000546001600160a01b03838116911614155b801561302e57506001600160a01b0382166000908152600b602052604090205460ff16155b801561305357506001600160a01b0383166000908152600b602052604090205460ff16155b801561306a57506001600160a01b03821661dead14155b801561307e57506001600160a01b03821615155b801561146857506001600160a01b0383163014159392505050565b601c805460ff60a01b1916600160a01b17905560145461ffff600160301b909104166130c4576134a8565b3060009081526005602090815260408083206016546001600160a01b031684529091529020546000191461311d573060009081526005602090815260408083206016546001600160a01b03168452909152902060001990555b60145460009060029061ffff600160301b820481169161313e911685614117565b6131489190614136565b6131529190614136565b9050600061316082846140e5565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061319a5761319a6140b9565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156131f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613217919061422f565b8160018151811061322a5761322a6140b9565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790613270908590600090869030904290600401614269565b600060405180830381600087803b15801561328a57600080fd5b505af115801561329e573d6000803e3d6000fd5b5050601454600092506002915061ffff600160301b82048116916132c3911647614117565b6132cd9190614136565b6132d79190614136565b905083156133b75760165460405163f305d71960e01b815230600482015260248101869052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561334d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061337291906142a5565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b6000471180156133e657506014546000906133e09061ffff80821691600160301b90041661420c565b61ffff16115b156134a357601c546014546001600160a01b03909116906108fc906134199061ffff80821691600160301b90041661420c565b60145461ffff9182169161343591600160201b90041647614117565b61343f9190614136565b6040518115909202916000818181858888f19350505050158015613467573d6000803e3d6000fd5b50601b546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156134a1573d6000803e3d6000fd5b505b505050505b50601c805460ff60a01b19169055565b602754600090610100900460ff1661354c576134d48585613804565b602754610100900460ff161580156134f157506134f18585612fdc565b1561354c5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610d10565b600061355a8686868661392a565b60808101516001600160a01b038816600090815260016020526040902054919250613584916140e5565b6001600160a01b03808816600090815260016020526040808220939093556060840151918816815291909120546135bb9190614158565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff161561362d576001600160a01b0386166000908152600260205260409020546136139085906140e5565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526007602052604090205460ff161561368d5780516001600160a01b0386166000908152600260205260409020546136739190614158565b6001600160a01b0386166000908152600260205260409020555b60408101511561376f5761369f612e4b565b81604001516136ae9190614117565b306000908152600160205260409020546136c89190614158565b3060009081526001602090815260408083209390935560079052205460ff161561371d576040808201513060009081526002602052919091205461370c9190614158565b306000908152600260205260409020555b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040015160405161376691815260200190565b60405180910390a35b60008160a001511180613786575060008160200151115b156137a7578060a00151600f60008282546137a191906140e5565b90915550505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83600001516040516137f091815260200190565b60405180910390a350600195945050505050565b602754610100900460ff16156138685760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610d10565b6138728282612fdc565b15801561388c57506017546001600160a01b038281169116145b15610e76576001600160a01b038083166000908152600b60205260409020805460ff191660011790556027805461ff001916610100179055602954166138df57602980546001600160a01b031916301790555b601c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b6139636040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61399c6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006139a6612e4b565b90506139b28186614117565b60808301526139c18787612fdc565b15613a555760295460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092169063ecd07a53906064016020604051808303816000875af1925050508015613a3e575060408051601f3d908101601f19168201909252613a3b9181019061424c565b60015b613a4757600080fd5b905080613a5357600080fd5b505b8315613bcb576001600160a01b03861660009081526003602052604090205460ff1615613aaf576012546010805461ffff80841663ffffffff1990921691909117600160401b909304166201000002919091179055613b32565b6001600160a01b03871660009081526003602052604090205460ff1615613b03576011546010805461ffff80841663ffffffff1990921691909117600160401b909304166201000002919091179055613b32565b6013546010805461ffff80841663ffffffff1990921691909117600160401b9093041662010000029190911790555b60155460105461ffff600160401b909204821691613b51911687614117565b613b5b9190614136565b602083015260155460105461ffff600160401b909204821691613b85916201000090041687614117565b613b8f9190614136565b604083018190526020830151613ba59190614158565b613baf90866140e5565b82526020820151613bc1908290614117565b60a0830152613be4565b6000602083018190526040830181905285835260a08301525b808260400151613bf49190614117565b8260a00151613c039190614158565b8260800151613c1291906140e5565b60608301525095945050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461280b57600080fd5b8035613c5781613c37565b919050565b801515811461280b57600080fd5b8035613c5781613c5c565b60008060408385031215613c8857600080fd5b823567ffffffffffffffff80821115613ca057600080fd5b818501915085601f830112613cb457600080fd5b8135602082821115613cc857613cc8613c21565b8160051b604051601f19603f83011681018181108682111715613ced57613ced613c21565b604052928352818301935084810182019289841115613d0b57600080fd5b948201945b83861015613d3057613d2186613c4c565b85529482019493820193613d10565b9650613d3f9050878201613c6a565b9450505050509250929050565b600060208083528351808285015260005b81811015613d7957858101830151858201604001528201613d5d565b81811115613d8b576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215613db457600080fd5b8235613dbf81613c37565b946020939093013593505050565b60008060408385031215613de057600080fd5b8235613deb81613c37565b91506020830135613dfb81613c37565b809150509250929050565b60008060408385031215613e1957600080fd5b8235613e2481613c37565b91506020830135613dfb81613c5c565b600080600060608486031215613e4957600080fd5b8335613e5481613c37565b92506020840135613e6481613c37565b929592945050506040919091013590565b60008060408385031215613e8857600080fd5b50508035926020909101359150565b600060208284031215613ea957600080fd5b5035919050565b600060208284031215613ec257600080fd5b813561146881613c37565b803561ffff81168114613c5757600080fd5b600080600060608486031215613ef457600080fd5b613efd84613ecd565b9250613f0b60208501613ecd565b9150613f1960408501613ecd565b90509250925092565b60008060008060808587031215613f3857600080fd5b613f4185613ecd565b9350613f4f60208601613ecd565b9250613f5d60408601613ecd565b9150613f6b60608601613ecd565b905092959194509250565b600080600060608486031215613f8b57600080fd5b8335613f9681613c5c565b92506020840135613fa681613c5c565b91506040840135613fb681613c5c565b809150509250925092565b600060208284031215613fd357600080fd5b813561146881613c5c565b60008060008060808587031215613ff457600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b600081518084526020808501945080840160005b838110156140745781516001600160a01b03168752958201959082019060010161404f565b509495945050505050565b604081526000614092604083018561403b565b905082151560208301529392505050565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156140f7576140f76140cf565b500390565b6000600019821415614110576141106140cf565b5060010190565b6000816000190483118215151615614131576141316140cf565b500290565b60008261415357634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561416b5761416b6140cf565b500190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b6000602082840312156141df57600080fd5b5051919050565b600061ffff808316818516808303821115614203576142036140cf565b01949350505050565b600061ffff83811690831681811015614227576142276140cf565b039392505050565b60006020828403121561424157600080fd5b815161146881613c37565b60006020828403121561425e57600080fd5b815161146881613c5c565b85815284602082015260a06040820152600061428860a083018661403b565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156142ba57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a54c732ead1354e67f738fa34575bece3c81270bf7c2d8bbe6860ac650e9da6864736f6c634300080a0033
0x60806040526000600455600a8054600160ff1991821617825564174876e800600c55600d80546009921682179055620000389162000912565b600c546200004791906200092a565b600e8190556200005a9060001962000962565b620000689060001962000979565b600f55604080518082018252600080825260209182018190526010805463ffffffff19169055825160a0808201855261012c8083528285018490526102bc8387018190526060808501869052608094850191909152601180546001600160501b03199081166902bc000002bc0000012c1790915587518085018952928352828701869052610898838901528282018690526109c4928501929092526012805483166909c4000008980000012c179055865180840188528581528087018690526103e8818901819052818301879052908501526013805483166903e8000003e800000000179055865180850188528581526019818801819052818901969096528101859052601480546001600160401b0319166619000000190000179055865192830187526103208084528387018190529683018790528201959095526127109101526015805490931669271003200320032003201790925581547310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b031991821617909255601a8054737a250d5630b4cf539739df2c5dacb4c659f2488d908416179055601b805473152718f1a601cb166fb0167db714793b80d65ab5931683179055601c8054600161ff0160a01b0319169092179091556001601d8190556064601e819055601f82905591829055600e546200026091906200092a565b6200026c919062000993565b602155601e54601d54600c546200028491906200092a565b62000290919062000993565b602255602054601f54600e54620002a891906200092a565b620002b4919062000993565b602355602054601f54600c54620002cc91906200092a565b620002d8919062000993565b602455612710600e546005620002ef91906200092a565b620002fb919062000993565b602555612710600e5460196200031291906200092a565b6200031e919062000993565b6026556027805461ffff191690556029805460ff60a01b1916600160a01b17905562015180602a55600f5460016000620003553390565b6001600160a01b03168152602081019190915260400160009081209190915580546001600160a01b031916331790556038461480620003945750466061145b15620003c257601954601880546001600160a01b0319166001600160a01b03909216919091179055620003ef565b4660011415620003ef57601a54601880546001600160a01b0319166001600160a01b039092169190911790555b601854601680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200044c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004729190620009aa565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fa9190620009aa565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000547573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200056d9190620009aa565b601780546001600160a01b0319166001600160a01b039283169081179091556000908152600360205260409020805460ff19166001179055601854620005b991339116600019620006fc565b601854620005d59030906001600160a01b0316600019620006fc565b600160066000620005ee6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526006909252812080548316600190811790915561dead82527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549093168117909255600b90620006766000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620006a63390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051620006ee91815260200190565b60405180910390a3620009d5565b6001600160a01b0383166200074e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b0382166200079c5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000745565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000854578160001904821115620008385762000838620007fd565b808516156200084657918102915b93841c939080029062000818565b509250929050565b6000826200086d575060016200090c565b816200087c575060006200090c565b8160018114620008955760028114620008a057620008c0565b60019150506200090c565b60ff841115620008b457620008b4620007fd565b50506001821b6200090c565b5060208310610133831016604e8410600b8410161715620008e5575081810a6200090c565b620008f1838362000813565b8060001904821115620009085762000908620007fd565b0290505b92915050565b60006200092360ff8416836200085c565b9392505050565b6000816000190483118215151615620009475762000947620007fd565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200097457620009746200094c565b500690565b6000828210156200098e576200098e620007fd565b500390565b600082620009a557620009a56200094c565b500490565b600060208284031215620009bd57600080fd5b81516001600160a01b03811681146200092357600080fd5b61430980620009e56000396000f3fe6080604052600436106103c75760003560e01c8063715018a6116101f2578063bc77169d1161010d578063dd62ed3e116100a0578063f6540ec71161006f578063f6540ec714610c6f578063fb78680d14610c85578063fdb78c0e14610ca5578063fe575a8714610cc657600080fd5b8063dd62ed3e14610bd4578063eafb5a3c14610c1a578063ee5d9c2d14610c3a578063eec2744e14610c4f57600080fd5b8063c6831cd8116100dc578063c6831cd814610ae9578063cab5ebea14610b2d578063cf84770614610b4d578063d3f6a15714610bb457600080fd5b8063bc77169d14610a44578063becdf13f14610a64578063c21f9a8a14610a84578063c2fa418f14610aa557600080fd5b80638da5cb5b11610185578063a9059cbb11610154578063a9059cbb146109c4578063aa22b172146109e4578063aa54547314610a04578063b6f8f8dc14610a2457600080fd5b80638da5cb5b1461090f57806395d89b4114610957578063962dfc7514610984578063a457c2d7146109a457600080fd5b806388f82020116101c157806388f82020146108d6578063893d20e81461090f5780638a63bd9b1461092d5780638a8c523c1461094257600080fd5b8063715018a614610848578063751039fc1461085d5780637b45d4311461087257806380c581d1146108b657600080fd5b806333251a0b116102e25780634fbee193116102755780635c24b074116102445780635c24b074146107dc57806364038409146107fc5780636fd8fb7a1461081257806370a082311461082857600080fd5b80634fbee1931461074f57806350a8e0161461078857806355dbc369146107a7578063590ffdce146107bc57600080fd5b80633f3cf56c116102b15780633f3cf56c146106d5578063452ed4f1146106f55780634ada218b146107155780634fb2e45d1461072f57600080fd5b806333251a0b1461065557806337e294d514610675578063384f36b61461069557806339509351146106b557600080fd5b806318160ddd1161035a5780632b112e49116103295780632b112e49146105e85780632c76235a146105fd5780632d83811914610613578063313ce5671461063357600080fd5b806318160ddd146105105780631b6afa2d1461052f57806323b872dd146105a857806326003957146105c857600080fd5b8063095ea7b311610396578063095ea7b314610480578063122fea3b146104b057806313b4a7f4146104d057806313e46192146104f057600080fd5b806303fd2a45146103d357806305bbedb61461040657806306fdde03146104285780630758d9241461046057600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e961dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561041257600080fd5b50610426610421366004613c75565b610ce6565b005b34801561043457600080fd5b5060408051808201909152600681526554657374434160d01b60208201525b6040516103fd9190613d4c565b34801561046c57600080fd5b506016546103e9906001600160a01b031681565b34801561048c57600080fd5b506104a061049b366004613da1565b610d81565b60405190151581526020016103fd565b3480156104bc57600080fd5b506018546103e9906001600160a01b031681565b3480156104dc57600080fd5b506104266104eb366004613dcd565b610d97565b3480156104fc57600080fd5b5061042661050b366004613e06565b610ef6565b34801561051c57600080fd5b50600e545b6040519081526020016103fd565b34801561053b57600080fd5b506015546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a0016103fd565b3480156105b457600080fd5b506104a06105c3366004613e34565b611258565b3480156105d457600080fd5b506104266105e3366004613e75565b6112d0565b3480156105f457600080fd5b506105216113b8565b34801561060957600080fd5b50610521602a5481565b34801561061f57600080fd5b5061052161062e366004613e97565b6113eb565b34801561063f57600080fd5b50600d5460405160ff90911681526020016103fd565b34801561066157600080fd5b50610426610670366004613eb0565b61146f565b34801561068157600080fd5b50601c546103e9906001600160a01b031681565b3480156106a157600080fd5b506104266106b0366004613eb0565b6114fb565b3480156106c157600080fd5b506104a06106d0366004613da1565b61155c565b3480156106e157600080fd5b506104266106f0366004613e75565b611598565b34801561070157600080fd5b506017546103e9906001600160a01b031681565b34801561072157600080fd5b506027546104a09060ff1681565b34801561073b57600080fd5b5061042661074a366004613eb0565b61168b565b34801561075b57600080fd5b506104a061076a366004613eb0565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561079457600080fd5b506027546104a090610100900460ff1681565b3480156107b357600080fd5b506105216117b2565b3480156107c857600080fd5b506104266107d7366004613e06565b611820565b3480156107e857600080fd5b506104266107f7366004613eb0565b611875565b34801561080857600080fd5b5061052160225481565b34801561081e57600080fd5b5061052160285481565b34801561083457600080fd5b50610521610843366004613eb0565b611963565b34801561085457600080fd5b506104266119c8565b34801561086957600080fd5b50610426611a47565b34801561087e57600080fd5b506011546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b3480156108c257600080fd5b506104266108d1366004613e06565b611a8c565b3480156108e257600080fd5b506104a06108f1366004613eb0565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561091b57600080fd5b506000546001600160a01b03166103e9565b34801561093957600080fd5b506104a0611bd9565b34801561094e57600080fd5b50610426611c24565b34801561096357600080fd5b506040805180820190915260048152635453434160e01b6020820152610453565b34801561099057600080fd5b50601b546103e9906001600160a01b031681565b3480156109b057600080fd5b506104a06109bf366004613da1565b611dd4565b3480156109d057600080fd5b506104a06109df366004613da1565b611e0b565b3480156109f057600080fd5b506104266109ff366004613edf565b611e22565b348015610a1057600080fd5b50610426610a1f366004613f22565b611ebf565b348015610a3057600080fd5b50610426610a3f366004613f76565b61200b565b348015610a5057600080fd5b50610426610a5f366004613f22565b6120a9565b348015610a7057600080fd5b50610426610a7f366004613f22565b6121f5565b348015610a9057600080fd5b506029546104a090600160a01b900460ff1681565b348015610ab157600080fd5b506013546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b348015610af557600080fd5b506012546105739061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b348015610b3957600080fd5b50610426610b48366004613fc1565b612341565b348015610b5957600080fd5b50601454610b869061ffff80821691620100008104821691600160201b8204811691600160301b90041684565b6040805161ffff958616815293851660208501529184169183019190915290911660608201526080016103fd565b348015610bc057600080fd5b50610426610bcf366004613dcd565b6123c3565b348015610be057600080fd5b50610521610bef366004613dcd565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b348015610c2657600080fd5b50610426610c35366004613eb0565b61241b565b348015610c4657600080fd5b5061042661274f565b348015610c5b57600080fd5b50610426610c6a366004613e06565b61280e565b348015610c7b57600080fd5b5061052160245481565b348015610c9157600080fd5b50610426610ca0366004613fde565b612872565b348015610cb157600080fd5b50601c546104a090600160a81b900460ff1681565b348015610cd257600080fd5b506104a0610ce1366004613eb0565b6128db565b6000546001600160a01b03163314610d195760405162461bcd60e51b8152600401610d1090614010565b60405180910390fd5b6029546040516302ddf6db60e11b81526001600160a01b03909116906305bbedb690610d4b908590859060040161407f565b600060405180830381600087803b158015610d6557600080fd5b505af1158015610d79573d6000803e3d6000fd5b505050505050565b6000610d8e33848461294a565b50600192915050565b6000546001600160a01b03163314610dc15760405162461bcd60e51b8152600401610d1090614010565b600a5460ff16610e0c5760405162461bcd60e51b8152602060048201526016602482015275233ab731ba34b7b71030b63932b0b23c903ab9b2b21760511b6044820152606401610d10565b806001600160a01b0316826001600160a01b03161415610e7a576001600160a01b0381166000908152600b602090815260408083208054600160ff19918216811790925560099093529220805490911682179055610e6b908290611820565b610e76816001610ef6565b5050565b6001600160a01b038281166000818152600b602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526009909252808320805486168317905592825291902080549092168117909155610ee4908390611820565b610eef816001611820565b610e6b8260015b6000546001600160a01b03163314610f205760405162461bcd60e51b8152600401610d1090614010565b60018115151415611055576001600160a01b03821660009081526007602052604090205460ff1615610f945760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c7265616479206578636c756465642e000000006044820152606401610d10565b6001600160a01b03821660009081526001602052604090205415610fee576001600160a01b038216600090815260016020526040902054610fd4906113eb565b6001600160a01b0383166000908152600260205260409020555b506001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b80610e76576001600160a01b03821660009081526007602052604090205460ff166110c25760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920696e636c756465642e000000006044820152606401610d10565b60085460011415611131576001600160a01b038216600090815260026020908152604080832083905560079091529020805460ff19169055600880548061110b5761110b6140a3565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b60005b60085481101561125357826001600160a01b03166008828154811061115b5761115b6140b9565b6000918252602090912001546001600160a01b031614156112415760088054611186906001906140e5565b81548110611196576111966140b9565b600091825260209091200154600880546001600160a01b0390921691839081106111c2576111c26140b9565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600282526040808220829055600790925220805460ff19169055600880548061121a5761121a6140a3565b600082815260209020810160001990810180546001600160a01b0319169055019055505050565b8061124b816140fc565b915050611134565b505050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146112bd576001600160a01b0384166000908152600560209081526040808320338452909152812080548492906112b79084906140e5565b90915550505b6112c8848484612a43565b949350505050565b6000546001600160a01b031633146112fa5760405162461bcd60e51b8152600401610d1090614010565b60008183600e5461130b9190614117565b6113159190614136565b90506103e8600e546113279190614136565b8110156113915760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e31604482015271129037b3103a37ba30b61039bab838363c9760711b6064820152608401610d10565b6023819055600c5482906113a6908590614117565b6113b09190614136565b602455505050565b60006113c46000611963565b6113cf61dead611963565b6113d99190614158565b600e546113e691906140e5565b905090565b6000600f548211156114525760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610d10565b600061145c612e4b565b90506114688184614136565b9392505050565b6000546001600160a01b031633146114995760405162461bcd60e51b8152600401610d1090614010565b6029546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b1580156114e057600080fd5b505af11580156114f4573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146115255760405162461bcd60e51b8152600401610d1090614010565b602754610100900460ff161561153a57600080fd5b601880546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d8e918590611593908690614158565b61294a565b6000546001600160a01b031633146115c25760405162461bcd60e51b8152600401610d1090614010565b60008183600e546115d39190614117565b6115dd9190614136565b90506103e8600e546115ef9190614136565b8110156116645760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610d10565b6021819055600c548290611679908590614117565b6116839190614136565b602255505050565b6000546001600160a01b031633146116b55760405162461bcd60e51b8152600401610d1090614010565b6001600160a01b0381166116db5760405162461bcd60e51b8152600401610d1090614170565b6001600160a01b03811661dead14156117065760405162461bcd60e51b8152600401610d1090614170565b6000805461171f916001600160a01b0390911690611820565b61172a816001611820565b60008054611740906001600160a01b0316611963565b111561176757600054611765906001600160a01b03168261176082611963565b612a43565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b602954604080516355dbc36960e01b815290516000926001600160a01b0316916355dbc3699160048083019260209291908290030181865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e691906141cd565b6000546001600160a01b0316331461184a5760405162461bcd60e51b8152600401610d1090614010565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461189f5760405162461bcd60e51b8152600401610d1090614010565b602754610100900460ff16156118f75760405162461bcd60e51b815260206004820152601860248201527f4c697175696469747920697320616c726561647920696e2e00000000000000006044820152606401610d10565b6001600160a01b0381163014156119415760405162461bcd60e51b815260206004820152600e60248201526d21b0b713ba1031329039b2b6331760911b6044820152606401610d10565b602980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526007602052604081205460ff16156119a057506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546119c2906113eb565b92915050565b6000546001600160a01b031633146119f25760405162461bcd60e51b8152600401610d1090614010565b60008054611a0b916001600160a01b0390911690611820565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314611a715760405162461bcd60e51b8152600401610d1090614010565b600e546023819055600c546024819055602191909155602255565b6000546001600160a01b03163314611ab65760405162461bcd60e51b8152600401610d1090614010565b80611b23576001600160a01b03828116600081815260036020526040808220805460ff1916905560295490516380c581d160e01b815260048101939093526024830191909152909116906380c581d190604401600060405180830381600087803b158015610d6557600080fd5b60045415611b7d576203f48060045442611b3d91906140e5565b11611b7d5760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b6044820152606401610d10565b6001600160a01b0382811660008181526003602052604090819020805460ff1916600190811790915542600490815560295492516380c581d160e01b8152908101939093526024830152909116906380c581d190604401610d4b565b600080546001600160a01b03163314611c045760405162461bcd60e51b8152600401610d1090614010565b601654611c1e9030906001600160a01b031660001961294a565b50600190565b6000546001600160a01b03163314611c4e5760405162461bcd60e51b8152600401610d1090614010565b60275460ff1615611ca15760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610d10565b602754610100900460ff16611cf85760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610d10565b611d03306001610ef6565b601754611d1a906001600160a01b03166001610ef6565b6029546001600160a01b0316611d3d57602980546001600160a01b031916301790555b602954601754600d54604051631b04570d60e21b81526001600160a01b03928316600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260ff9091166064820152911690636c115c3490608401600060405180830381600087803b158015611daf57600080fd5b505af1925050508015611dc0575060015b506027805460ff1916600117905542602855565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610d8e9185906115939086906140e5565b6000611e18338484612a43565b5060019392505050565b6000546001600160a01b03163314611e4c5760405162461bcd60e51b8152600401610d1090614010565b6014805461ffff838116600160201b0265ffff0000000019868316620100000263ffffffff1990941692881692909217929092171617905580611e8f83856141e6565b611e9991906141e6565b6014805461ffff92909216600160301b0261ffff60301b19909216919091179055505050565b6000546001600160a01b03163314611ee95760405162461bcd60e51b8152600401610d1090614010565b60155461ffff90811690851611801590611f13575060155461ffff62010000909104811690841611155b8015611f30575060155461ffff600160201b909104811690831611155b8015611f4d575060155461ffff600160301b909104811690821611155b611f5657600080fd5b60008183611f6486886141e6565b611f6e91906141e6565b611f7891906141e6565b9050610d7a8161ffff161115611f8d57600080fd5b6013805461ffff87811665ffffffffffff19909216620100008883160265ffff0000ffff19161791909117600160201b868316021761ffff60301b1916600160301b91851691909102179055611fe3858261420c565b6013805461ffff92909216600160401b0261ffff60401b199092169190911790555050505050565b6000546001600160a01b031633146120355760405162461bcd60e51b8152600401610d1090614010565b602954604051630d4696eb60e31b81528415156004820152831515602482015282151560448201526001600160a01b0390911690636a34b75890606401600060405180830381600087803b15801561208c57600080fd5b505af11580156120a0573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146120d35760405162461bcd60e51b8152600401610d1090614010565b60155461ffff908116908516118015906120fd575060155461ffff62010000909104811690841611155b801561211a575060155461ffff600160201b909104811690831611155b8015612137575060155461ffff600160301b909104811690821611155b61214057600080fd5b6000818361214e86886141e6565b61215891906141e6565b61216291906141e6565b9050610d7a8161ffff16111561217757600080fd5b6011805461ffff87811665ffffffffffff19909216620100008883160265ffff0000ffff19161791909117600160201b868316021761ffff60301b1916600160301b918516919091021790556121cd858261420c565b6011805461ffff92909216600160401b0261ffff60401b199092169190911790555050505050565b6000546001600160a01b0316331461221f5760405162461bcd60e51b8152600401610d1090614010565b60155461ffff90811690851611801590612249575060155461ffff62010000909104811690841611155b8015612266575060155461ffff600160201b909104811690831611155b8015612283575060155461ffff600160301b909104811690821611155b61228c57600080fd5b6000818361229a86886141e6565b6122a491906141e6565b6122ae91906141e6565b9050610d7a8161ffff1611156122c357600080fd5b6012805461ffff87811665ffffffffffff19909216620100008883160265ffff0000ffff19161791909117600160201b868316021761ffff60301b1916600160301b91851691909102179055612319858261420c565b6012805461ffff92909216600160401b0261ffff60401b199092169190911790555050505050565b6000546001600160a01b0316331461236b5760405162461bcd60e51b8152600401610d1090614010565b601c8054821515600160a81b0260ff60a81b199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906123b890831515815260200190565b60405180910390a150565b6000546001600160a01b031633146123ed5760405162461bcd60e51b8152600401610d1090614010565b601b80546001600160a01b039384166001600160a01b031991821617909155601c8054929093169116179055565b6000546001600160a01b031633146124455760405162461bcd60e51b8152600401610d1090614010565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ae919061422f565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251f919061422f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561256a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258e919061422f565b90506001600160a01b03811661270757816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612600919061422f565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561264d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612671919061422f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156126be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e2919061422f565b601780546001600160a01b0319166001600160a01b0392909216919091179055612723565b601780546001600160a01b0319166001600160a01b0383161790555b601680546001600160a01b0319166001600160a01b03841690811790915561125390309060001961294a565b6000546001600160a01b031633146127795760405162461bcd60e51b8152600401610d1090614010565b602754610100900460ff16156127d15760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610d10565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561280b573d6000803e3d6000fd5b50565b6000546001600160a01b031633146128385760405162461bcd60e51b8152600401610d1090614010565b6029546040516377613a2760e11b81526001600160a01b03848116600483015283151560248301529091169063eec2744e90604401610d4b565b6000546001600160a01b0316331461289c5760405162461bcd60e51b8152600401610d1090614010565b8284600e546128ab9190614117565b6128b59190614136565b602555600e5481906128c8908490614117565b6128d29190614136565b60265550505050565b60295460405163fe575a8760e01b81526001600160a01b038381166004830152600092169063fe575a8790602401602060405180830381865afa158015612926573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c2919061424c565b6001600160a01b0383166129965760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610d10565b6001600160a01b0382166129e25760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610d10565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416612aa95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610d10565b6001600160a01b038316612b0b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610d10565b60008211612b6d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610d10565b612b778484612fdc565b15612d295760275460ff16612bce5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610d10565b6001600160a01b03841660009081526003602052604090205460ff1680612c0d57506001600160a01b03831660009081526003602052604090205460ff165b15612c7557602154821115612c755760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610d10565b6018546001600160a01b03848116911614801590612cac57506001600160a01b03831660009081526003602052604090205460ff16155b15612d295760235482612cbe85611963565b612cc89190614158565b1115612d295760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610d10565b6001600160a01b03841660009081526006602052604090205460019060ff1680612d6b57506001600160a01b03841660009081526006602052604090205460ff165b15612d74575060005b6001600160a01b03841660009081526003602052604090205460ff1615612e3657601c54600160a01b900460ff16158015612db85750601c54600160a81b900460ff165b8015612ddd57506001600160a01b03841660009081526009602052604090205460ff16155b8015612e0257506001600160a01b03851660009081526009602052604090205460ff16155b15612e36576000612e1230611963565b90506025548110612e34576026548110612e2b57506026545b612e3481613099565b505b612e42858585846134b8565b95945050505050565b600f54600e5460009190825b600854811015612fa357826001600060088481548110612e7957612e796140b9565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612ee45750816002600060088481548110612ebd57612ebd6140b9565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612f0157600e54600f54612ef99190614136565b935050505090565b6001600060088381548110612f1857612f186140b9565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612f4790846140e5565b92506002600060088381548110612f6057612f606140b9565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612f8f90836140e5565b915080612f9b816140fc565b915050612e57565b50600e54600f54612fb49190614136565b821015612fd257600e54600f54612fcb9190614136565b9250505090565b612fcb8183614136565b600080546001600160a01b0384811691161480159061300957506000546001600160a01b03838116911614155b801561302e57506001600160a01b0382166000908152600b602052604090205460ff16155b801561305357506001600160a01b0383166000908152600b602052604090205460ff16155b801561306a57506001600160a01b03821661dead14155b801561307e57506001600160a01b03821615155b801561146857506001600160a01b0383163014159392505050565b601c805460ff60a01b1916600160a01b17905560145461ffff600160301b909104166130c4576134a8565b3060009081526005602090815260408083206016546001600160a01b031684529091529020546000191461311d573060009081526005602090815260408083206016546001600160a01b03168452909152902060001990555b60145460009060029061ffff600160301b820481169161313e911685614117565b6131489190614136565b6131529190614136565b9050600061316082846140e5565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061319a5761319a6140b9565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156131f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613217919061422f565b8160018151811061322a5761322a6140b9565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790613270908590600090869030904290600401614269565b600060405180830381600087803b15801561328a57600080fd5b505af115801561329e573d6000803e3d6000fd5b5050601454600092506002915061ffff600160301b82048116916132c3911647614117565b6132cd9190614136565b6132d79190614136565b905083156133b75760165460405163f305d71960e01b815230600482015260248101869052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af115801561334d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061337291906142a5565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b6000471180156133e657506014546000906133e09061ffff80821691600160301b90041661420c565b61ffff16115b156134a357601c546014546001600160a01b03909116906108fc906134199061ffff80821691600160301b90041661420c565b60145461ffff9182169161343591600160201b90041647614117565b61343f9190614136565b6040518115909202916000818181858888f19350505050158015613467573d6000803e3d6000fd5b50601b546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156134a1573d6000803e3d6000fd5b505b505050505b50601c805460ff60a01b19169055565b602754600090610100900460ff1661354c576134d48585613804565b602754610100900460ff161580156134f157506134f18585612fdc565b1561354c5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610d10565b600061355a8686868661392a565b60808101516001600160a01b038816600090815260016020526040902054919250613584916140e5565b6001600160a01b03808816600090815260016020526040808220939093556060840151918816815291909120546135bb9190614158565b6001600160a01b0380871660009081526001602090815260408083209490945591891681526007909152205460ff161561362d576001600160a01b0386166000908152600260205260409020546136139085906140e5565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526007602052604090205460ff161561368d5780516001600160a01b0386166000908152600260205260409020546136739190614158565b6001600160a01b0386166000908152600260205260409020555b60408101511561376f5761369f612e4b565b81604001516136ae9190614117565b306000908152600160205260409020546136c89190614158565b3060009081526001602090815260408083209390935560079052205460ff161561371d576040808201513060009081526002602052919091205461370c9190614158565b306000908152600260205260409020555b306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040015160405161376691815260200190565b60405180910390a35b60008160a001511180613786575060008160200151115b156137a7578060a00151600f60008282546137a191906140e5565b90915550505b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83600001516040516137f091815260200190565b60405180910390a350600195945050505050565b602754610100900460ff16156138685760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610d10565b6138728282612fdc565b15801561388c57506017546001600160a01b038281169116145b15610e76576001600160a01b038083166000908152600b60205260409020805460ff191660011790556027805461ff001916610100179055602954166138df57602980546001600160a01b031916301790555b601c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a15050565b6139636040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61399c6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006139a6612e4b565b90506139b28186614117565b60808301526139c18787612fdc565b15613a555760295460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092169063ecd07a53906064016020604051808303816000875af1925050508015613a3e575060408051601f3d908101601f19168201909252613a3b9181019061424c565b60015b613a4757600080fd5b905080613a5357600080fd5b505b8315613bcb576001600160a01b03861660009081526003602052604090205460ff1615613aaf576012546010805461ffff80841663ffffffff1990921691909117600160401b909304166201000002919091179055613b32565b6001600160a01b03871660009081526003602052604090205460ff1615613b03576011546010805461ffff80841663ffffffff1990921691909117600160401b909304166201000002919091179055613b32565b6013546010805461ffff80841663ffffffff1990921691909117600160401b9093041662010000029190911790555b60155460105461ffff600160401b909204821691613b51911687614117565b613b5b9190614136565b602083015260155460105461ffff600160401b909204821691613b85916201000090041687614117565b613b8f9190614136565b604083018190526020830151613ba59190614158565b613baf90866140e5565b82526020820151613bc1908290614117565b60a0830152613be4565b6000602083018190526040830181905285835260a08301525b808260400151613bf49190614117565b8260a00151613c039190614158565b8260800151613c1291906140e5565b60608301525095945050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461280b57600080fd5b8035613c5781613c37565b919050565b801515811461280b57600080fd5b8035613c5781613c5c565b60008060408385031215613c8857600080fd5b823567ffffffffffffffff80821115613ca057600080fd5b818501915085601f830112613cb457600080fd5b8135602082821115613cc857613cc8613c21565b8160051b604051601f19603f83011681018181108682111715613ced57613ced613c21565b604052928352818301935084810182019289841115613d0b57600080fd5b948201945b83861015613d3057613d2186613c4c565b85529482019493820193613d10565b9650613d3f9050878201613c6a565b9450505050509250929050565b600060208083528351808285015260005b81811015613d7957858101830151858201604001528201613d5d565b81811115613d8b576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215613db457600080fd5b8235613dbf81613c37565b946020939093013593505050565b60008060408385031215613de057600080fd5b8235613deb81613c37565b91506020830135613dfb81613c37565b809150509250929050565b60008060408385031215613e1957600080fd5b8235613e2481613c37565b91506020830135613dfb81613c5c565b600080600060608486031215613e4957600080fd5b8335613e5481613c37565b92506020840135613e6481613c37565b929592945050506040919091013590565b60008060408385031215613e8857600080fd5b50508035926020909101359150565b600060208284031215613ea957600080fd5b5035919050565b600060208284031215613ec257600080fd5b813561146881613c37565b803561ffff81168114613c5757600080fd5b600080600060608486031215613ef457600080fd5b613efd84613ecd565b9250613f0b60208501613ecd565b9150613f1960408501613ecd565b90509250925092565b60008060008060808587031215613f3857600080fd5b613f4185613ecd565b9350613f4f60208601613ecd565b9250613f5d60408601613ecd565b9150613f6b60608601613ecd565b905092959194509250565b600080600060608486031215613f8b57600080fd5b8335613f9681613c5c565b92506020840135613fa681613c5c565b91506040840135613fb681613c5c565b809150509250925092565b600060208284031215613fd357600080fd5b813561146881613c5c565b60008060008060808587031215613ff457600080fd5b5050823594602084013594506040840135936060013592509050565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b600081518084526020808501945080840160005b838110156140745781516001600160a01b03168752958201959082019060010161404f565b509495945050505050565b604081526000614092604083018561403b565b905082151560208301529392505050565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156140f7576140f76140cf565b500390565b6000600019821415614110576141106140cf565b5060010190565b6000816000190483118215151615614131576141316140cf565b500290565b60008261415357634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561416b5761416b6140cf565b500190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b6000602082840312156141df57600080fd5b5051919050565b600061ffff808316818516808303821115614203576142036140cf565b01949350505050565b600061ffff83811690831681811015614227576142276140cf565b039392505050565b60006020828403121561424157600080fd5b815161146881613c37565b60006020828403121561425e57600080fd5b815161146881613c5c565b85815284602082015260a06040820152600061428860a083018661403b565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156142ba57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a54c732ead1354e67f738fa34575bece3c81270bf7c2d8bbe6860ac650e9da6864736f6c634300080a0033