<s> import struct <EOL> class AlertMessage ( object ) : <EOL> Warning = <NUM_LIT:1> <EOL> Fatal = <NUM_LIT:2> <EOL> alert_levels = { <EOL> <NUM_LIT:1> : '<STR_LIT>' , <EOL> <NUM_LIT:2> : '<STR_LIT>' <EOL> } <EOL> CloseNotify = <NUM_LIT:0> <EOL> UnexpectedMessage = <NUM_LIT:10> <EOL> BadRecordMac = <NUM_LIT:20> <EOL> DecryptionFailed = <NUM_LIT> <EOL> RecordOveflow = <NUM_LIT> <EOL> DecompressionFailure = <NUM_LIT:30> <EOL> HandshakeFailure = <NUM_LIT> <EOL> NoCertificate = <NUM_LIT> <EOL> BadCertificate = <NUM_LIT> <EOL> UnsupportedCertificate = <NUM_LIT> <EOL> CertificateRevoked = <NUM_LIT> <EOL> CertificateExpired = <NUM_LIT> <EOL> CertificateUnknown = <NUM_LIT> <EOL> IllegalParameter = <NUM_LIT> <EOL> UnknownCA = <NUM_LIT> <EOL> AccessDenied = <NUM_LIT> <EOL> DecodeError = <NUM_LIT:50> <EOL> DecryptError = <NUM_LIT> <EOL> ExportRestriction = <NUM_LIT> <EOL> ProtocolVersion = <NUM_LIT> <EOL> InsufficientSecurity = <NUM_LIT> <EOL> InternalError = <NUM_LIT> <EOL> InappropriateFallback = <NUM_LIT> <EOL> UserCancelled = <NUM_LIT> <EOL> NoRenegotiation = <NUM_LIT:100> <EOL> UnsupportedExtension = <NUM_LIT> <EOL> CertificateUnobtainable = <NUM_LIT> <EOL> UnrecognizedName = <NUM_LIT> <EOL> BadCertificateStatusResponse = <NUM_LIT> <EOL> BadCertificateHashValue = <NUM_LIT> <EOL> UnknownPSKIndentity = <NUM_LIT> <EOL> NoApplicationProtocol = <NUM_LIT> <EOL> alert_types = { <EOL> <NUM_LIT:0> : '<STR_LIT>' , <EOL> <NUM_LIT:10> : '<STR_LIT>' , <EOL> <NUM_LIT:20> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT:30> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT:50> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT:100> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' , <EOL> <NUM_LIT> : '<STR_LIT>' <EOL> } <EOL> def __init__ ( self ) : <EOL> self . bytes = '<STR_LIT>' <EOL> @ classmethod <EOL> def create ( cls , level = Fatal , type = InternalError ) : <EOL> self = cls ( ) <EOL> self . bytes = struct . pack ( '<STR_LIT>' , level , type ) <EOL> return self <EOL> @ classmethod <EOL> def from_bytes ( cls , bytes ) : <EOL> self = cls ( ) <EOL> self . bytes = bytes <EOL> return self <EOL> def alert_level ( self ) : <EOL> return ord ( self . bytes [ <NUM_LIT:0> ] ) <EOL> def alert_type ( self ) : <EOL> return ord ( self . bytes [ <NUM_LIT:1> ] ) <EOL> def __str__ ( self ) : <EOL> return '<STR_LIT>' % ( self . alert_levels . get ( self . alert_level ( ) , '<STR_LIT>' ) , self . alert_level ( ) , <EOL> self . alert_types . get ( self . alert_type ( ) , '<STR_LIT>' ) , self . alert_type ( ) ) </s>
