# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Fuzzer dictionary of HTTP/2.0 messages

# Len = 5, Type = 0 (DATA), Flags = 0, Stream = 1, Payload = ABCDE
"\x00\x00\x05\x00\x00\x00\x00\x00\x01ABCE"

# Len = 5, Type = 0 (DATA), Flags = 8 (PADDED), Stream = 1, Pad = 2,
# Payload = AB, Padding = 00 00
"\x00\x00\x05\x00\x08\x00\x00\x00\x01\x02AB\x00\x00"

# Headers. This is from |resp| in SpdyNetworkTransactionTest.Get
"\x00\x00\x0b\x01\x04\x00\x00\x00\x01\x88\x40\x84\x9c\xb4\x50\x7f\x03\x62\x79\x65"

# |late_headers| from SpdyNetworkTransactionTest.ServerPushWithHeaders.
"\x00\x00\x02\x01\x04\x00\x00\x00\x02\x88\xbf"

# Len = 5, Type = 2 (PRIORITY), Flags = 0, stream = 1 Dep = 00 00 00 00,
# weight = 128
"\x00\x00\x05\x02\x00\x00\x00\x00\x01\x00\x00\x00\x00\x80"

# Len = 4, Type = 3 (RST_STREAM), Flags = 0, stream = 1, Code = 00 00 00 02
"\x00\x00\x04\x03\x00\x00\x00\x00\x01\x00\x00\x00\x02"

# Len = 0, Type = 4 (SETTINGS), Flags = 1 (ACK), stream = 1
"\x00\x00\x00\x04\x01\x00\x00\x00\x01"

# Len = 6, Type = 4 (SETTINGS), Flags = 0, stream = 1,
# ident = SETTINGS_MAX_FRAME_SIZE (0x5), val = 65535
"\x00\x00\x06\x04\x00\x00\x00\x00\x01\x00\x05\x00\x00\xFF\xFF"

# Push promise. This one is from |stream2_syn| in
# SpdyNetworkTransactionTest.ServerPushWithHeaders.
"\x00\x00\x21\x05\x04\x00\x00\x00\x01\x00\x00\x00\x02\x41\x8c\xf1\xe3\xc2\xe5\xf2\x3a\x6b\xa0\xab\x9e\xc9\xbf\x87\x00\x84\xb9\x58\xd3\x3f\x87\x61\x89\x4e\x75\xe4\x1a\x7f"

# Len = 8, Type = 6 (PING), Flags = 0, stream = 1, data = "ABCDEFGH"
"\x00\x00\x08\x06\x00\x00\x00\x00\x01ACDEFGH"

# Len = 8, TYPE = 7 (GOAWAY), Flags = 0, stream = 0, last stream = 1, error = 2
"\x00\x00\x08\x07\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02"

# Len = 4, TYPE = 8 (WINDOW_UPDATE), Flags = 0, stream = 1, size = 65536
"\x00\x00\x04\x08\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00"

# Continuation frame (type = 9), taken from
# SpdyFramerTest.ContinuationWithStreamIdZero, except with stream set to 1.
"\x00\x00\x16\x09\x04\x00\x00\x00\x01\x73\x6f\x6d\x65\x20\x6e\x6f\x6e\x73\x65\x6e\x73\x65\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67"

# AltSvc (type = A), taken from SpdyFramerTest.CreateAltSvc
"\x00\x00\x49\x0a\x00\x00\x00\x00\x03\x00\x06\x6f\x72\x69\x67\x69\x6e\x70\x69\x64\x31\x3d\x22\x68\x6f\x73\x74\x3a\x34\x34\x33\x22\x3b\x20\x6d\x61\x3d\x35\x2c\x70\x25\x32\x32\x25\x33\x44\x69\x25\x33\x41\x64\x3d\x22\x68\x5f\x5c\x5c\x6f\x5c\x22\x73\x74\x3a\x31\x32\x33\x22\x3b\x20\x6d\x61\x3d\x34\x32\x3b\x20\x76\x3d\x22\x32\x34\x22"

