class FrameType():
    DATA = "00"
    HEADERS = "01"
    PRIORITY = "02"
    RST_STREAM = "03"
    SETTINGS = "04"
    PUSH_PROMISE = "05"
    PING = "06"
    GOAWAY = "07"
    WINDOW_UPDATE = "08"
    CONTINUATION = "09"

class BaseFlag():
    ACK = "01"
    END_STREAM = "01"
    END_HEADERS = "04"
    PADDED = "08"
    PRIORITY = "20"
    
class Settings():
    HEADER_TABLE_SIZE = "01"
    ENABLE_PUSH = "02"
    MAX_CONCURRENT_STREAMS = "03"
    INITIAL_WINDOW_SIZE = "04"
    MAX_FRAME_SIZE = "05"
    MAX_HEADER_LIST_SIZE = "06"

class ErrorCode():
    NO_ERROR = "00"
    PROTOCOL_ERROR = "01"
    INTERNAL_ERROR = "02"
    FLOW_CONTROL_ERROR = "03"
    SETTINGS_TIMEOUT = "04"
    STREAM_CLOSED = "05"
    FRAME_SIZE_ERROR = "06"
    REFUSED_STREAM = "07"
    CANCEL = "08"
    COMPRESSION_ERROR = "09"
    CONNECT_ERROR = "0a"
    ENHANCE_YOUR_CALM = "0b"
    INADEQUATE_SECURITY = "0c"

CONNECTION_PREFACE = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"

class FrameType():
    DATA = "\x00"
    HEADERS = "\x01"
    PRIORITY = "\x02"
    RST_STREAM = "\x03"
    SETTINGS = "\x04"
    PUSH_PROMISE = "\x05"
    PING = "\x06"
    GOAWAY = "\x07"
    WINDOW_UPDATE = "\x08"
    CONTINUATION = "\x09"

class BaseFlag():
    NO = "\x00"
    ACK = "\x01"
    END_STREAM = "\x01"
    END_HEADERS = "\x04"
    PADDED = "\x08"
    PRIORITY = "\x20"
    
class Settings():
    NO = "\x00"
    HEADER_TABLE_SIZE = "\x01"
    ENABLE_PUSH = "\x02"
    MAX_CONCURRENT_STREAMS = "\x03"
    INITIAL_WINDOW_SIZE = "\x04"
    MAX_FRAME_SIZE = "\x05"
    MAX_HEADER_LIST_SIZE = "\x06"

class ErrorCode():
    NO_ERROR = "\x00"
    PROTOCOL_ERROR = "\x01"
    INTERNAL_ERROR = "\x02"
    FLOW_CONTROL_ERROR = "\x03"
    SETTINGS_TIMEOUT = "\x04"
    STREAM_CLOSED = "\x05"
    FRAME_SIZE_ERROR = "\x06"
    REFUSED_STREAM = "\x07"
    CANCEL = "\x08"
    COMPRESSION_ERROR = "\x09"
    CONNECT_ERROR = "\x0a"
    ENHANCE_YOUR_CALM = "\x0b"
    INADEQUATE_SECURITY = "\x0c"

change to hex