diff --git a/api/v1alpha1/generated.pb.go b/api/v1alpha1/generated.pb.go index 8c5bc40ce7..b2a3e37038 100644 --- a/api/v1alpha1/generated.pb.go +++ b/api/v1alpha1/generated.pb.go @@ -1217,149 +1217,150 @@ func init() { } var fileDescriptor_40fafbfb106ed5b2 = []byte{ - // 2272 bytes of a gzipped FileDescriptorProto + // 2280 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x73, 0x1c, 0x47, 0x15, 0xd7, 0xec, 0x87, 0xb4, 0xfb, 0xf4, 0xdd, 0x71, 0x8c, 0x22, 0x52, 0x5a, 0xd5, 0x98, 0x50, - 0xb1, 0x89, 0x67, 0x2d, 0xc5, 0x18, 0xc5, 0xc4, 0x07, 0xad, 0x62, 0x5b, 0x50, 0x92, 0xa5, 0xb4, - 0x16, 0x93, 0x04, 0x13, 0x68, 0xcd, 0xf6, 0xae, 0x06, 0xcd, 0xee, 0x4c, 0xcd, 0xcc, 0xca, 0xa8, - 0x0a, 0xaa, 0x82, 0x2f, 0xb9, 0x06, 0x6e, 0xe1, 0xe3, 0x94, 0xbf, 0x80, 0xe2, 0x48, 0x51, 0xc5, + 0xb1, 0x13, 0xcf, 0x5a, 0x8a, 0x31, 0x8a, 0x89, 0x0f, 0x5a, 0xc5, 0xb6, 0xa0, 0x24, 0x4b, 0x69, + 0x2d, 0x26, 0x09, 0x26, 0xd0, 0x9a, 0xed, 0x5d, 0x0d, 0x9a, 0xdd, 0x99, 0x9a, 0x99, 0x95, 0x51, + 0x15, 0x54, 0x05, 0x5f, 0x72, 0x4d, 0x8e, 0xe1, 0xe3, 0x94, 0xbf, 0x80, 0xe2, 0x48, 0x51, 0xc5, 0x0d, 0x17, 0xa7, 0x1c, 0x53, 0x1c, 0xb6, 0xf0, 0x72, 0xe0, 0xc0, 0x05, 0x48, 0x41, 0x15, 0x3a, - 0x51, 0xfd, 0x31, 0x9f, 0xbb, 0xab, 0x9d, 0x0d, 0xb6, 0x83, 0x52, 0xb9, 0x4d, 0x77, 0xbf, 0xfe, - 0xbd, 0x7e, 0xaf, 0xdf, 0xfb, 0xf5, 0xeb, 0xde, 0x85, 0xaf, 0xba, 0x46, 0xc3, 0xd5, 0x0e, 0xd7, - 0x5c, 0xcd, 0xb0, 0xca, 0x2e, 0x75, 0x8e, 0x0c, 0x9d, 0x5e, 0x26, 0xb6, 0xe1, 0x96, 0x89, 0x6d, - 0x94, 0x8f, 0x56, 0x88, 0x69, 0x1f, 0x90, 0x95, 0x72, 0x83, 0xb6, 0xa8, 0x43, 0x3c, 0x5a, 0xd3, - 0x6c, 0xc7, 0xf2, 0x2c, 0xb4, 0x2c, 0x66, 0x68, 0x72, 0xc6, 0xf7, 0xd8, 0x0c, 0x8d, 0xd8, 0x86, - 0xe6, 0xcf, 0x58, 0xbc, 0xdc, 0x30, 0xbc, 0x83, 0xf6, 0xbe, 0xa6, 0x5b, 0xcd, 0x72, 0xc3, 0x6a, - 0x58, 0x65, 0x3e, 0x71, 0xbf, 0x5d, 0xe7, 0x2d, 0xde, 0xe0, 0x5f, 0x02, 0x70, 0x51, 0x95, 0x4b, - 0x60, 0x5a, 0x75, 0xcb, 0xa1, 0xe5, 0xa3, 0x1e, 0xa5, 0x8b, 0x57, 0x43, 0x99, 0x26, 0xd1, 0x0f, - 0x8c, 0x16, 0x75, 0x8e, 0xcb, 0xf6, 0x61, 0xa3, 0xcc, 0xd7, 0xdb, 0xa4, 0x1e, 0xe9, 0x37, 0xeb, - 0xda, 0xa0, 0x59, 0x4e, 0xbb, 0xe5, 0x19, 0x4d, 0x5a, 0x76, 0xf5, 0x03, 0xda, 0x24, 0x3d, 0xf3, - 0x5e, 0x89, 0x7a, 0x46, 0xb7, 0x5a, 0x9e, 0x63, 0x99, 0x26, 0x75, 0x2e, 0xfb, 0xd3, 0x18, 0x04, - 0x9f, 0x4a, 0x93, 0x53, 0xd5, 0x5f, 0x2a, 0xf0, 0xc2, 0x86, 0xd5, 0xaa, 0x1b, 0x8d, 0x6d, 0x62, - 0xbb, 0xaf, 0xd1, 0x3a, 0x69, 0x9b, 0xde, 0x96, 0xa5, 0x13, 0x73, 0x67, 0xff, 0x07, 0x54, 0xf7, - 0x30, 0xad, 0x53, 0x87, 0xb6, 0x74, 0x8a, 0x2e, 0x40, 0xbe, 0xe1, 0x58, 0x6d, 0x7b, 0x41, 0x59, - 0x56, 0x5e, 0x2c, 0x56, 0xa6, 0x1f, 0x76, 0x4a, 0x63, 0xdd, 0x4e, 0x29, 0x7f, 0x9b, 0x75, 0x62, - 0x31, 0x86, 0x5e, 0x82, 0x82, 0x43, 0x5d, 0xab, 0xed, 0xe8, 0x74, 0x21, 0xc3, 0xe5, 0xe6, 0xa4, - 0x5c, 0x01, 0xcb, 0x7e, 0x1c, 0x48, 0xa0, 0x65, 0xc8, 0xb5, 0x48, 0x93, 0x2e, 0x64, 0xb9, 0xe4, - 0x94, 0x94, 0xcc, 0xdd, 0x21, 0x4d, 0x8a, 0xf9, 0x88, 0xfa, 0x07, 0x05, 0x66, 0x6f, 0x59, 0xce, - 0x7d, 0xe2, 0xd4, 0xaa, 0x56, 0x95, 0x38, 0x0d, 0xea, 0xa1, 0x23, 0x28, 0x7a, 0xfc, 0x0b, 0xd3, - 0x3a, 0x5f, 0xcc, 0xe4, 0xea, 0x4d, 0x6d, 0xd8, 0x26, 0x6b, 0x7b, 0x62, 0xe4, 0x34, 0x13, 0x2b, - 0xf3, 0x72, 0x05, 0xc5, 0xaa, 0x8f, 0x8f, 0x43, 0x55, 0xe8, 0x55, 0x00, 0xd1, 0xd8, 0xb5, 0x1c, - 0x8f, 0x5b, 0x97, 0xaf, 0x3c, 0xdf, 0xed, 0x94, 0xa0, 0x1a, 0xf4, 0x9e, 0xc4, 0x5a, 0x38, 0x22, - 0xaf, 0x7e, 0x9c, 0x81, 0x89, 0xdb, 0xc4, 0xa3, 0xf7, 0xc9, 0x31, 0xba, 0x07, 0x05, 0xef, 0xd8, - 0xa6, 0xdb, 0xd4, 0x23, 0xd2, 0x00, 0xcd, 0x37, 0x20, 0xba, 0xf5, 0x9a, 0x7d, 0xd8, 0xd0, 0xb8, - 0x25, 0x2c, 0x60, 0xb4, 0xa3, 0x15, 0xad, 0x2a, 0x67, 0x85, 0x5e, 0xf5, 0x7b, 0x70, 0x80, 0x88, - 0xbe, 0x0f, 0x05, 0x26, 0x5f, 0x23, 0x1e, 0xe1, 0xab, 0x9c, 0x5c, 0xbd, 0x92, 0x0e, 0x5d, 0xb8, - 0x83, 0xe3, 0x23, 0x89, 0x0f, 0x61, 0x1f, 0x0e, 0x50, 0xd1, 0x0e, 0xe4, 0x5c, 0x9b, 0xea, 0x7c, - 0xdf, 0x26, 0x57, 0x2f, 0x0f, 0x77, 0xbe, 0x34, 0x7c, 0xcf, 0xa6, 0x7a, 0xb8, 0xcd, 0xac, 0x85, - 0x39, 0x10, 0xfa, 0x36, 0x8c, 0xbb, 0x1e, 0xf1, 0xda, 0xee, 0x42, 0x8e, 0x43, 0x96, 0xd3, 0x43, - 0xf2, 0x69, 0x95, 0x19, 0x09, 0x3a, 0x2e, 0xda, 0x58, 0xc2, 0xa9, 0x0f, 0xb2, 0x30, 0x25, 0x25, - 0x37, 0x4c, 0xe2, 0xba, 0x31, 0xd7, 0xe7, 0x9e, 0xa8, 0xeb, 0x95, 0x27, 0xe2, 0xfa, 0xaa, 0x74, - 0xbd, 0xd8, 0xd8, 0xd5, 0xd4, 0x7e, 0xe2, 0xd6, 0x0f, 0xf4, 0xff, 0xbd, 0xc0, 0xff, 0x62, 0x4b, - 0xaf, 0x8e, 0x88, 0x7b, 0xfa, 0x26, 0xfc, 0x36, 0x0b, 0xcf, 0x46, 0xc5, 0x37, 0xac, 0x56, 0xcd, - 0xf0, 0x0c, 0xab, 0x85, 0x6e, 0x40, 0x8e, 0xf9, 0x4e, 0x52, 0xca, 0x45, 0x7f, 0x65, 0xcc, 0xb3, - 0x27, 0x9d, 0xd2, 0x73, 0x7d, 0x27, 0xb1, 0x41, 0xcc, 0xa7, 0xa1, 0xad, 0x60, 0xd9, 0x82, 0x6b, - 0xae, 0xc6, 0x17, 0x70, 0xd2, 0x29, 0xf5, 0xe1, 0x6a, 0x2d, 0x40, 0x8a, 0x2f, 0x13, 0x7d, 0x19, - 0xc6, 0x1d, 0x4a, 0x5c, 0xab, 0x25, 0xf9, 0x28, 0x30, 0x07, 0xf3, 0x5e, 0x2c, 0x47, 0xd1, 0x45, - 0x98, 0x68, 0x52, 0xd7, 0x25, 0x0d, 0xca, 0x23, 0xa8, 0x58, 0x99, 0x95, 0x82, 0x13, 0xdb, 0xa2, - 0x1b, 0xfb, 0xe3, 0xe8, 0x08, 0x90, 0x49, 0x5c, 0xaf, 0xea, 0x90, 0x96, 0x2b, 0x16, 0x6f, 0x34, - 0xe9, 0x42, 0x9e, 0xfb, 0xf8, 0x52, 0xca, 0xb8, 0x33, 0x9a, 0xb4, 0xb2, 0x28, 0x35, 0xa0, 0xad, - 0x1e, 0x34, 0xdc, 0x47, 0x03, 0xfa, 0x26, 0x20, 0x6b, 0x9f, 0xed, 0x1d, 0xad, 0xdd, 0x16, 0x84, - 0x6f, 0x58, 0xad, 0x85, 0xf1, 0x65, 0xe5, 0xc5, 0x6c, 0x88, 0xb5, 0xd3, 0x23, 0x81, 0xfb, 0xcc, - 0x52, 0x3f, 0xc8, 0xc0, 0x5c, 0x74, 0x23, 0xb6, 0x0c, 0xd7, 0x8b, 0xa5, 0x51, 0xf6, 0xb1, 0xa7, - 0xd1, 0xbd, 0x9e, 0x34, 0x4a, 0x89, 0xce, 0xd6, 0x16, 0x47, 0xf7, 0x7b, 0x22, 0x29, 0xb4, 0x07, - 0x79, 0xc3, 0xa3, 0x4d, 0x16, 0x34, 0xd9, 0x28, 0x74, 0xba, 0x58, 0x0f, 0x0f, 0xbe, 0x6f, 0x30, - 0x10, 0x2c, 0xb0, 0xd4, 0xbf, 0x66, 0xe3, 0x5e, 0x62, 0xc9, 0x85, 0x56, 0x01, 0xc2, 0xd3, 0x58, - 0x06, 0x79, 0x90, 0xde, 0x1b, 0xc1, 0x08, 0x8e, 0x48, 0xa1, 0x9f, 0x2a, 0xb0, 0x40, 0x4c, 0xd3, - 0xba, 0x4f, 0x6b, 0x12, 0x8f, 0x1d, 0x87, 0xae, 0x4d, 0x74, 0xea, 0xca, 0xac, 0x7f, 0x39, 0xa5, - 0x33, 0xc8, 0x3e, 0x35, 0xf7, 0xa8, 0x49, 0x75, 0xcf, 0x72, 0x2a, 0xcb, 0x52, 0xef, 0xc2, 0xfa, - 0x00, 0x70, 0x3c, 0x50, 0x2d, 0x7a, 0x57, 0x81, 0xf3, 0x72, 0x10, 0x5b, 0x6d, 0x8f, 0x46, 0x56, - 0x94, 0xfd, 0xe4, 0x2b, 0x5a, 0xec, 0x76, 0x4a, 0xe7, 0xd7, 0xfb, 0xc2, 0xe2, 0x01, 0xea, 0xd0, - 0x3b, 0x0a, 0x4c, 0xdb, 0xc4, 0x21, 0x4d, 0xea, 0x51, 0xc7, 0x65, 0x05, 0x80, 0x20, 0xf1, 0xdb, - 0xc3, 0x37, 0x31, 0x55, 0x95, 0x53, 0x99, 0xef, 0x76, 0x4a, 0xd3, 0xbb, 0x51, 0x0d, 0x38, 0xae, - 0x50, 0xfd, 0x89, 0x02, 0xa8, 0x97, 0xfc, 0xd0, 0x21, 0xdf, 0x6b, 0x41, 0x2c, 0xee, 0x82, 0xc2, - 0x43, 0xeb, 0x6b, 0xa3, 0x85, 0x56, 0x40, 0x4c, 0xb1, 0x20, 0x91, 0x90, 0x38, 0x02, 0xaf, 0xfe, - 0x3a, 0x12, 0x6d, 0x01, 0x99, 0xae, 0xc5, 0xc8, 0xf4, 0x4b, 0x09, 0x32, 0x3d, 0x97, 0x94, 0x7f, - 0x62, 0x3c, 0x1a, 0xe1, 0xc7, 0xec, 0x10, 0x7e, 0x0c, 0x29, 0x37, 0x77, 0x2a, 0xe5, 0x7e, 0x16, - 0x78, 0xf4, 0xfd, 0x0c, 0x4c, 0xca, 0x3d, 0xe8, 0xa1, 0x50, 0xe5, 0x89, 0x52, 0x68, 0xe6, 0xb1, - 0x53, 0xe8, 0x1d, 0x9f, 0x42, 0xb3, 0x3c, 0xce, 0x2f, 0xa6, 0x8e, 0xf3, 0x01, 0xec, 0x79, 0x08, - 0xe7, 0xa5, 0x40, 0xf2, 0xd6, 0x51, 0x86, 0x62, 0xcb, 0x4f, 0x7f, 0x19, 0xd9, 0x41, 0x95, 0x1e, - 0xf0, 0x02, 0x0e, 0x65, 0x82, 0x3b, 0x45, 0x66, 0xe0, 0x9d, 0xe2, 0x63, 0x25, 0xd8, 0x08, 0xce, - 0xd2, 0x17, 0x20, 0xaf, 0xb3, 0xf4, 0x4b, 0x5e, 0x6c, 0x78, 0x4e, 0x62, 0x31, 0x86, 0xbe, 0x03, - 0x45, 0xd3, 0x70, 0x3d, 0xb6, 0x9d, 0xfe, 0xc1, 0x71, 0x69, 0xb8, 0xd5, 0x5b, 0x72, 0x4a, 0xb8, - 0x66, 0xbf, 0xc7, 0xc5, 0x21, 0x1e, 0xda, 0x87, 0x22, 0xa9, 0xd5, 0x1c, 0xea, 0xba, 0xd4, 0x77, - 0xe9, 0x4a, 0x7a, 0xf0, 0x75, 0x31, 0x35, 0xd4, 0xb1, 0xee, 0x63, 0xe1, 0x10, 0x56, 0xfd, 0x93, - 0x02, 0xd3, 0xb1, 0x9a, 0x19, 0xd5, 0xfb, 0x30, 0xd6, 0x08, 0x05, 0x65, 0x5a, 0xb2, 0x42, 0xa4, - 0xd7, 0x75, 0x57, 0xd2, 0x5b, 0x27, 0x6b, 0xcb, 0x53, 0x1d, 0xa8, 0xfe, 0x51, 0x81, 0xb9, 0xcd, - 0x6a, 0x75, 0x77, 0x93, 0x92, 0x1a, 0x75, 0x6e, 0x19, 0xa6, 0x47, 0x1d, 0xf4, 0x16, 0x64, 0x49, - 0xad, 0x26, 0x0d, 0xfb, 0xfa, 0x70, 0x8d, 0x49, 0x00, 0x6d, 0xbd, 0x56, 0xbb, 0xd9, 0xf2, 0x9c, - 0xe3, 0xca, 0xa4, 0x54, 0x9e, 0x5d, 0xaf, 0xd5, 0x30, 0x03, 0x45, 0x2a, 0x23, 0xae, 0xa6, 0x75, - 0x44, 0xb9, 0x41, 0xc5, 0x0a, 0x08, 0xd2, 0x62, 0x3d, 0x58, 0x8e, 0x2c, 0x5e, 0x83, 0x82, 0x8f, - 0x80, 0xe6, 0x20, 0x7b, 0x48, 0x8f, 0x45, 0x84, 0x61, 0xf6, 0x89, 0xce, 0x41, 0xfe, 0x88, 0x98, - 0x6d, 0x19, 0xa8, 0x58, 0x34, 0xae, 0x67, 0xd6, 0x14, 0xf5, 0x3f, 0x19, 0x28, 0xb2, 0xb5, 0xf0, - 0xb3, 0xef, 0xcc, 0xdf, 0x15, 0x5f, 0x8f, 0xdd, 0x15, 0xcb, 0xe9, 0xb6, 0x81, 0x9b, 0x3e, 0xf0, - 0xb6, 0xf2, 0x66, 0xe2, 0xb6, 0xb8, 0x32, 0x0a, 0xe8, 0xe9, 0x57, 0x95, 0xbf, 0x2b, 0x30, 0x1b, - 0xc8, 0xae, 0xeb, 0xfc, 0x5c, 0x7d, 0x1b, 0x8a, 0x75, 0xff, 0x09, 0x42, 0x6e, 0x41, 0x0a, 0x8d, - 0x89, 0x57, 0x8b, 0xca, 0x34, 0x0b, 0xde, 0xa0, 0x13, 0x87, 0x90, 0xe8, 0xc7, 0x30, 0x45, 0x7f, - 0xe8, 0xd1, 0x96, 0xcb, 0x4e, 0x0e, 0x5a, 0x97, 0xfb, 0xf0, 0xd8, 0x2a, 0x9a, 0xb9, 0x6e, 0xa7, - 0x34, 0x75, 0x33, 0xa2, 0x00, 0xc7, 0xd4, 0xa9, 0x7f, 0x8b, 0x9a, 0x2c, 0x53, 0xe7, 0x4d, 0x98, - 0x38, 0xe0, 0x99, 0xe0, 0x4a, 0x83, 0x57, 0x47, 0x4f, 0x9f, 0xca, 0x24, 0x3b, 0xf2, 0x45, 0x8f, - 0x8b, 0x7d, 0xbc, 0x4f, 0xdb, 0xda, 0x9f, 0x65, 0x60, 0x3a, 0xb0, 0x76, 0xd3, 0x72, 0x3d, 0xf4, - 0x12, 0x14, 0x0e, 0x2c, 0xd7, 0xe3, 0x87, 0x86, 0x12, 0x7f, 0xb2, 0xda, 0x94, 0xfd, 0x38, 0x90, - 0x40, 0x55, 0xc8, 0x3b, 0x6d, 0x93, 0xfa, 0x44, 0x36, 0x4a, 0x3c, 0xe3, 0xb6, 0x49, 0xc3, 0xd3, - 0x85, 0xb5, 0x5c, 0x2c, 0xc0, 0x7a, 0x9c, 0x92, 0x7d, 0xba, 0x4e, 0xf9, 0x55, 0xd4, 0x29, 0x67, - 0xbe, 0x38, 0xd9, 0x8d, 0x17, 0x27, 0x5f, 0x19, 0x61, 0x8b, 0x06, 0x94, 0x27, 0xbf, 0xcf, 0xc2, - 0x4c, 0x20, 0xb3, 0x4d, 0x3c, 0xfd, 0x80, 0x45, 0x8d, 0x4d, 0xbc, 0x83, 0x6a, 0x58, 0x70, 0x07, - 0x4b, 0xda, 0x95, 0xfd, 0x38, 0x90, 0x40, 0xcf, 0x43, 0x8e, 0x7d, 0xcb, 0xa2, 0xa4, 0xc0, 0xf8, - 0x8c, 0x49, 0x61, 0xde, 0x8b, 0x6e, 0xc0, 0xac, 0xc8, 0x0e, 0x0e, 0xcd, 0x21, 0x45, 0xe1, 0xfc, - 0x4c, 0xb7, 0x53, 0x9a, 0xdd, 0x8c, 0x0f, 0xe1, 0xa4, 0x2c, 0x3a, 0x08, 0x93, 0x35, 0xc7, 0x2d, - 0xbe, 0x31, 0x82, 0xc5, 0x1c, 0x46, 0x93, 0x59, 0x2a, 0x4e, 0xbb, 0xa0, 0x5c, 0x1f, 0x9a, 0xbb, - 0xf9, 0xa7, 0x1a, 0xa6, 0x8b, 0xd7, 0x61, 0x2a, 0xba, 0xd0, 0x91, 0x0e, 0xd5, 0xf7, 0xa2, 0x21, - 0xce, 0x72, 0x0f, 0xbd, 0x0e, 0xf9, 0x26, 0x33, 0x3e, 0xf9, 0x50, 0x97, 0xd6, 0x69, 0x95, 0x22, - 0x8b, 0x13, 0xfe, 0x89, 0x05, 0x12, 0xfa, 0x16, 0x8c, 0xd7, 0x39, 0xf7, 0xc9, 0xa8, 0x1e, 0xe5, - 0x60, 0x92, 0xa4, 0xc9, 0x0b, 0x09, 0xf1, 0x8d, 0x25, 0x18, 0x83, 0x25, 0xfc, 0x28, 0x92, 0xbc, - 0x30, 0x0a, 0xac, 0x38, 0xc3, 0x04, 0xac, 0xf8, 0xc6, 0x12, 0x4c, 0xfd, 0x9d, 0x12, 0x71, 0x09, - 0xaf, 0x84, 0xab, 0x90, 0x67, 0x44, 0xe7, 0x17, 0x83, 0xa3, 0x90, 0x1b, 0xa3, 0xca, 0x30, 0x7b, - 0x58, 0xcb, 0xc5, 0x02, 0x0c, 0xdd, 0x85, 0x89, 0x9a, 0xd8, 0x75, 0xe9, 0x96, 0x91, 0x71, 0xf9, - 0x49, 0x22, 0x23, 0x07, 0xfb, 0x60, 0xea, 0x83, 0xe8, 0xc1, 0x25, 0x6b, 0x5a, 0x0b, 0x26, 0x1b, - 0xa2, 0x3e, 0xc5, 0xb4, 0xee, 0xdb, 0xb1, 0x96, 0xba, 0xa8, 0x4d, 0x46, 0xe4, 0x33, 0xd2, 0x20, - 0xff, 0xbe, 0xc0, 0x40, 0x71, 0x54, 0x83, 0x7a, 0x08, 0xd3, 0xfe, 0x29, 0x21, 0x88, 0x61, 0x2d, - 0x1a, 0x56, 0xc5, 0x8a, 0xea, 0xbb, 0x84, 0x8f, 0x9e, 0x74, 0x4a, 0xf3, 0x31, 0x71, 0x9e, 0xd1, - 0x32, 0x7a, 0x86, 0xdf, 0x5c, 0xfe, 0x91, 0x81, 0x82, 0x5f, 0xff, 0xa2, 0xef, 0x26, 0xce, 0xad, - 0x74, 0x7e, 0x8d, 0x2a, 0x3f, 0xf5, 0xa0, 0x5b, 0x86, 0x9c, 0x1d, 0xfe, 0xce, 0x11, 0xac, 0x86, - 0xff, 0xae, 0xc1, 0x47, 0xd0, 0xab, 0x50, 0xe0, 0xbf, 0x21, 0xe9, 0x96, 0x29, 0xf9, 0x6a, 0x39, - 0xa0, 0x40, 0xd9, 0x7f, 0xd2, 0x29, 0x4d, 0xf9, 0xdf, 0x92, 0x12, 0x65, 0x0b, 0xdd, 0x82, 0xac, - 0x67, 0xfa, 0x15, 0x5c, 0x0a, 0x8e, 0xae, 0x6e, 0xed, 0x09, 0x16, 0xa9, 0x4c, 0xb0, 0x4a, 0xbc, - 0xba, 0xb5, 0x87, 0x19, 0x00, 0x7a, 0x1b, 0xc6, 0x1d, 0x16, 0x00, 0xae, 0x64, 0xa3, 0x6b, 0xc3, - 0xa1, 0x04, 0xd5, 0x1b, 0xad, 0x9a, 0xd1, 0x6a, 0x04, 0xaf, 0x51, 0xe1, 0xd3, 0x03, 0x47, 0xc3, - 0x12, 0x55, 0x6d, 0xc0, 0x6c, 0xe2, 0xa2, 0x85, 0xca, 0xb1, 0x87, 0x96, 0x2f, 0x26, 0x1e, 0x5a, - 0x26, 0xa5, 0x58, 0xe4, 0x7d, 0xe5, 0x42, 0x8c, 0x96, 0xc2, 0x34, 0xb9, 0xcb, 0x3a, 0x25, 0x4b, - 0xa9, 0xbf, 0xc9, 0xc2, 0xbc, 0xaf, 0x29, 0x7c, 0xd4, 0x79, 0x25, 0xa6, 0xeb, 0x85, 0x84, 0xae, - 0x67, 0x7b, 0x26, 0x7c, 0xfe, 0xaa, 0xf3, 0x74, 0x5f, 0x75, 0xfe, 0xa5, 0xc0, 0x4c, 0xfc, 0xaa, - 0x1a, 0xe4, 0xb1, 0x32, 0x28, 0x8f, 0xd1, 0x1b, 0x30, 0x21, 0x2f, 0xe6, 0xe9, 0x0f, 0x8a, 0xe4, - 0x6d, 0x9f, 0x73, 0xa2, 0x6c, 0x60, 0x1f, 0x0e, 0x35, 0x62, 0x77, 0x7a, 0x51, 0x00, 0xbd, 0x9c, - 0x1e, 0x3c, 0xfd, 0x0b, 0xe4, 0x83, 0x0c, 0x9c, 0xeb, 0x97, 0x47, 0xe8, 0x47, 0x30, 0x1f, 0x3c, - 0xc6, 0xf8, 0x9d, 0x92, 0x9f, 0x3e, 0xd1, 0x2b, 0xf1, 0x73, 0x72, 0x21, 0xf3, 0x77, 0x92, 0xa8, - 0xb8, 0x57, 0x11, 0x32, 0x61, 0x9a, 0xe7, 0x6d, 0xa0, 0xf9, 0x7f, 0x78, 0x31, 0xe7, 0x4f, 0xc1, - 0x38, 0x8a, 0x86, 0xe3, 0xe0, 0xea, 0xfb, 0x0a, 0xa8, 0x7b, 0x54, 0x77, 0xa8, 0xf7, 0xff, 0xf7, - 0xcb, 0xf9, 0xcf, 0x15, 0xb8, 0x90, 0xe2, 0x37, 0xef, 0x4f, 0x67, 0x71, 0xff, 0xcc, 0x40, 0x31, - 0x20, 0x74, 0xf4, 0xae, 0x02, 0xb3, 0x3a, 0x75, 0x3c, 0xa3, 0x6e, 0xe8, 0xc4, 0xa3, 0x91, 0x93, - 0xfb, 0xb5, 0x34, 0xbf, 0xeb, 0x0f, 0xf3, 0x7f, 0xe5, 0x0b, 0x72, 0x05, 0xb3, 0x1b, 0x71, 0x25, - 0x38, 0xa9, 0x15, 0x5d, 0x87, 0x99, 0xa6, 0xd1, 0x32, 0x9a, 0xed, 0xe6, 0x5d, 0xea, 0xb0, 0xb2, - 0x53, 0x5a, 0x8b, 0xba, 0x9d, 0xd2, 0xcc, 0x76, 0x6c, 0x04, 0x27, 0x24, 0x91, 0x0e, 0x13, 0x96, - 0x1d, 0xcd, 0xbb, 0xb5, 0x11, 0x0e, 0x35, 0x6d, 0x47, 0x4c, 0x4d, 0x54, 0xe0, 0xb2, 0x17, 0xfb, - 0xc8, 0xac, 0x04, 0x8e, 0x4a, 0x8e, 0x54, 0x02, 0xff, 0x3b, 0x03, 0x85, 0xaa, 0x6e, 0x7f, 0x36, - 0x9e, 0x95, 0x76, 0x63, 0xcf, 0x4a, 0x29, 0x7e, 0xc3, 0xf3, 0x2d, 0x1f, 0xf8, 0xaa, 0xf4, 0x46, - 0xe2, 0x55, 0xe9, 0xca, 0x08, 0x98, 0xa7, 0x3f, 0x2a, 0xfd, 0x22, 0x03, 0x53, 0xbe, 0xe8, 0x99, - 0xbf, 0x5d, 0xef, 0xc4, 0x6f, 0xd7, 0x97, 0xd2, 0x7b, 0x69, 0xc0, 0xe5, 0x7a, 0x26, 0x74, 0x0e, - 0xdb, 0x0d, 0x75, 0x0e, 0x66, 0xe2, 0x7e, 0xe5, 0x7f, 0xe2, 0xa8, 0x3a, 0xa4, 0x5e, 0x37, 0xf4, - 0x3d, 0xdb, 0x34, 0xbc, 0x33, 0x1f, 0xbc, 0xd5, 0x58, 0xf0, 0xa6, 0x78, 0x5b, 0x8b, 0x5a, 0x9f, - 0xe2, 0x4f, 0x1c, 0xb9, 0xb4, 0x7f, 0xe2, 0x88, 0xe1, 0x9e, 0x1e, 0xc4, 0x1f, 0x64, 0x60, 0x2e, - 0x2a, 0x7e, 0xe6, 0x03, 0x79, 0x2f, 0x1e, 0xc8, 0xda, 0x68, 0xde, 0x1a, 0x10, 0xcc, 0x28, 0xee, - 0x24, 0x1e, 0xd0, 0xe7, 0x00, 0xf5, 0xf1, 0xb3, 0xf6, 0xf0, 0xd1, 0xd2, 0xd8, 0x87, 0x8f, 0x96, - 0xc6, 0x3e, 0x7a, 0xb4, 0x34, 0xf6, 0x4e, 0x77, 0x49, 0x79, 0xd8, 0x5d, 0x52, 0x3e, 0xec, 0x2e, - 0x29, 0x1f, 0x75, 0x97, 0x94, 0x3f, 0x77, 0x97, 0x94, 0xf7, 0xfe, 0xb2, 0x34, 0xf6, 0x56, 0xc1, - 0x57, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0x19, 0x91, 0x69, 0xfe, 0x28, 0x00, 0x00, + 0x51, 0xfd, 0x31, 0x9f, 0xbb, 0xab, 0x9d, 0x0d, 0xb6, 0x83, 0x52, 0xdc, 0xa6, 0xbb, 0x5f, 0xff, + 0x5e, 0xbf, 0xd7, 0xef, 0xfd, 0xfa, 0x75, 0xef, 0xc2, 0xd7, 0x5c, 0xa3, 0xe1, 0x6a, 0x87, 0x6b, + 0xae, 0x66, 0x58, 0x65, 0x97, 0x3a, 0x47, 0x86, 0x4e, 0x2f, 0x13, 0xdb, 0x70, 0xcb, 0xc4, 0x36, + 0xca, 0x47, 0x2b, 0xc4, 0xb4, 0x0f, 0xc8, 0x4a, 0xb9, 0x41, 0x5b, 0xd4, 0x21, 0x1e, 0xad, 0x69, + 0xb6, 0x63, 0x79, 0x16, 0x5a, 0x16, 0x33, 0x34, 0x39, 0xe3, 0xfb, 0x6c, 0x86, 0x46, 0x6c, 0x43, + 0xf3, 0x67, 0x2c, 0x5e, 0x6e, 0x18, 0xde, 0x41, 0x7b, 0x5f, 0xd3, 0xad, 0x66, 0xb9, 0x61, 0x35, + 0xac, 0x32, 0x9f, 0xb8, 0xdf, 0xae, 0xf3, 0x16, 0x6f, 0xf0, 0x2f, 0x01, 0xb8, 0xa8, 0xca, 0x25, + 0x30, 0xad, 0xba, 0xe5, 0xd0, 0xf2, 0x51, 0x8f, 0xd2, 0xc5, 0xab, 0xa1, 0x4c, 0x93, 0xe8, 0x07, + 0x46, 0x8b, 0x3a, 0xc7, 0x65, 0xfb, 0xb0, 0x51, 0xe6, 0xeb, 0x6d, 0x52, 0x8f, 0xf4, 0x9b, 0x75, + 0x6d, 0xd0, 0x2c, 0xa7, 0xdd, 0xf2, 0x8c, 0x26, 0x2d, 0xbb, 0xfa, 0x01, 0x6d, 0x92, 0x9e, 0x79, + 0xaf, 0x46, 0x3d, 0xa3, 0x5b, 0x2d, 0xcf, 0xb1, 0x4c, 0x93, 0x3a, 0x97, 0xfd, 0x69, 0x0c, 0x82, + 0x4f, 0xa5, 0xc9, 0xa9, 0xea, 0x2f, 0x14, 0x78, 0x61, 0xc3, 0x6a, 0xd5, 0x8d, 0xc6, 0x36, 0xb1, + 0xdd, 0xd7, 0x69, 0x9d, 0xb4, 0x4d, 0x6f, 0xcb, 0xd2, 0x89, 0xb9, 0xb3, 0xff, 0x43, 0xaa, 0x7b, + 0x98, 0xd6, 0xa9, 0x43, 0x5b, 0x3a, 0x45, 0x17, 0x20, 0xdf, 0x70, 0xac, 0xb6, 0xbd, 0xa0, 0x2c, + 0x2b, 0x2f, 0x16, 0x2b, 0xd3, 0x0f, 0x3b, 0xa5, 0xb1, 0x6e, 0xa7, 0x94, 0xbf, 0xcd, 0x3a, 0xb1, + 0x18, 0x43, 0x2f, 0x43, 0xc1, 0xa1, 0xae, 0xd5, 0x76, 0x74, 0xba, 0x90, 0xe1, 0x72, 0x73, 0x52, + 0xae, 0x80, 0x65, 0x3f, 0x0e, 0x24, 0xd0, 0x32, 0xe4, 0x5a, 0xa4, 0x49, 0x17, 0xb2, 0x5c, 0x72, + 0x4a, 0x4a, 0xe6, 0xee, 0x90, 0x26, 0xc5, 0x7c, 0x44, 0xfd, 0xbd, 0x02, 0xb3, 0xb7, 0x2c, 0xe7, + 0x3e, 0x71, 0x6a, 0x55, 0xab, 0x4a, 0x9c, 0x06, 0xf5, 0xd0, 0x11, 0x14, 0x3d, 0xfe, 0x85, 0x69, + 0x9d, 0x2f, 0x66, 0x72, 0xf5, 0xa6, 0x36, 0x6c, 0x93, 0xb5, 0x3d, 0x31, 0x72, 0x9a, 0x89, 0x95, + 0x79, 0xb9, 0x82, 0x62, 0xd5, 0xc7, 0xc7, 0xa1, 0x2a, 0xf4, 0x1a, 0x80, 0x68, 0xec, 0x5a, 0x8e, + 0xc7, 0xad, 0xcb, 0x57, 0x9e, 0xef, 0x76, 0x4a, 0x50, 0x0d, 0x7a, 0x4f, 0x62, 0x2d, 0x1c, 0x91, + 0x57, 0x3f, 0xcd, 0xc0, 0xc4, 0x6d, 0xe2, 0xd1, 0xfb, 0xe4, 0x18, 0xdd, 0x83, 0x82, 0x77, 0x6c, + 0xd3, 0x6d, 0xea, 0x11, 0x69, 0x80, 0xe6, 0x1b, 0x10, 0xdd, 0x7a, 0xcd, 0x3e, 0x6c, 0x68, 0xdc, + 0x12, 0x16, 0x30, 0xda, 0xd1, 0x8a, 0x56, 0x95, 0xb3, 0x42, 0xaf, 0xfa, 0x3d, 0x38, 0x40, 0x44, + 0x3f, 0x80, 0x02, 0x93, 0xaf, 0x11, 0x8f, 0xf0, 0x55, 0x4e, 0xae, 0x5e, 0x49, 0x87, 0x2e, 0xdc, + 0xc1, 0xf1, 0x91, 0xc4, 0x87, 0xb0, 0x0f, 0x07, 0xa8, 0x68, 0x07, 0x72, 0xae, 0x4d, 0x75, 0xbe, + 0x6f, 0x93, 0xab, 0x97, 0x87, 0x3b, 0x5f, 0x1a, 0xbe, 0x67, 0x53, 0x3d, 0xdc, 0x66, 0xd6, 0xc2, + 0x1c, 0x08, 0x7d, 0x07, 0xc6, 0x5d, 0x8f, 0x78, 0x6d, 0x77, 0x21, 0xc7, 0x21, 0xcb, 0xe9, 0x21, + 0xf9, 0xb4, 0xca, 0x8c, 0x04, 0x1d, 0x17, 0x6d, 0x2c, 0xe1, 0xd4, 0x07, 0x59, 0x98, 0x92, 0x92, + 0x1b, 0x26, 0x71, 0xdd, 0x98, 0xeb, 0x73, 0x4f, 0xd4, 0xf5, 0xca, 0x13, 0x71, 0x7d, 0x55, 0xba, + 0x5e, 0x6c, 0xec, 0x6a, 0x6a, 0x3f, 0x71, 0xeb, 0x07, 0xfa, 0xff, 0x5e, 0xe0, 0x7f, 0xb1, 0xa5, + 0x57, 0x47, 0xc4, 0x3d, 0x7d, 0x13, 0x7e, 0x93, 0x85, 0x67, 0xa3, 0xe2, 0x1b, 0x56, 0xab, 0x66, + 0x78, 0x86, 0xd5, 0x42, 0x37, 0x20, 0xc7, 0x7c, 0x27, 0x29, 0xe5, 0xa2, 0xbf, 0x32, 0xe6, 0xd9, + 0x93, 0x4e, 0xe9, 0xb9, 0xbe, 0x93, 0xd8, 0x20, 0xe6, 0xd3, 0xd0, 0x56, 0xb0, 0x6c, 0xc1, 0x35, + 0x57, 0xe3, 0x0b, 0x38, 0xe9, 0x94, 0xfa, 0x70, 0xb5, 0x16, 0x20, 0xc5, 0x97, 0x89, 0xbe, 0x0a, + 0xe3, 0x0e, 0x25, 0xae, 0xd5, 0x92, 0x7c, 0x14, 0x98, 0x83, 0x79, 0x2f, 0x96, 0xa3, 0xe8, 0x22, + 0x4c, 0x34, 0xa9, 0xeb, 0x92, 0x06, 0xe5, 0x11, 0x54, 0xac, 0xcc, 0x4a, 0xc1, 0x89, 0x6d, 0xd1, + 0x8d, 0xfd, 0x71, 0x74, 0x04, 0xc8, 0x24, 0xae, 0x57, 0x75, 0x48, 0xcb, 0x15, 0x8b, 0x37, 0x9a, + 0x74, 0x21, 0xcf, 0x7d, 0x7c, 0x29, 0x65, 0xdc, 0x19, 0x4d, 0x5a, 0x59, 0x94, 0x1a, 0xd0, 0x56, + 0x0f, 0x1a, 0xee, 0xa3, 0x01, 0x7d, 0x0b, 0x90, 0xb5, 0xcf, 0xf6, 0x8e, 0xd6, 0x6e, 0x0b, 0xc2, + 0x37, 0xac, 0xd6, 0xc2, 0xf8, 0xb2, 0xf2, 0x62, 0x36, 0xc4, 0xda, 0xe9, 0x91, 0xc0, 0x7d, 0x66, + 0xa9, 0x1f, 0x65, 0x60, 0x2e, 0xba, 0x11, 0x5b, 0x86, 0xeb, 0xc5, 0xd2, 0x28, 0xfb, 0xd8, 0xd3, + 0xe8, 0x5e, 0x4f, 0x1a, 0xa5, 0x44, 0x67, 0x6b, 0x8b, 0xa3, 0xfb, 0x3d, 0x91, 0x14, 0xda, 0x83, + 0xbc, 0xe1, 0xd1, 0x26, 0x0b, 0x9a, 0x6c, 0x14, 0x3a, 0x5d, 0xac, 0x87, 0x07, 0xdf, 0x37, 0x19, + 0x08, 0x16, 0x58, 0xea, 0x5f, 0xb2, 0x71, 0x2f, 0xb1, 0xe4, 0x42, 0xab, 0x00, 0xe1, 0x69, 0x2c, + 0x83, 0x3c, 0x48, 0xef, 0x8d, 0x60, 0x04, 0x47, 0xa4, 0xd0, 0x07, 0x0a, 0x2c, 0x10, 0xd3, 0xb4, + 0xee, 0xd3, 0x9a, 0xc4, 0x63, 0xc7, 0xa1, 0x6b, 0x13, 0x9d, 0xba, 0x32, 0xeb, 0x5f, 0x49, 0xe9, + 0x0c, 0xb2, 0x4f, 0xcd, 0x3d, 0x6a, 0x52, 0xdd, 0xb3, 0x9c, 0xca, 0xb2, 0xd4, 0xbb, 0xb0, 0x3e, + 0x00, 0x1c, 0x0f, 0x54, 0x8b, 0xde, 0x53, 0xe0, 0xbc, 0x1c, 0xc4, 0x56, 0xdb, 0xa3, 0x91, 0x15, + 0x65, 0x3f, 0xfb, 0x8a, 0x16, 0xbb, 0x9d, 0xd2, 0xf9, 0xf5, 0xbe, 0xb0, 0x78, 0x80, 0x3a, 0xf4, + 0xae, 0x02, 0xd3, 0x36, 0x71, 0x48, 0x93, 0x7a, 0xd4, 0x71, 0x59, 0x01, 0x20, 0x48, 0xfc, 0xf6, + 0xf0, 0x4d, 0x4c, 0x55, 0xe5, 0x54, 0xe6, 0xbb, 0x9d, 0xd2, 0xf4, 0x6e, 0x54, 0x03, 0x8e, 0x2b, + 0x54, 0x7f, 0xaa, 0x00, 0xea, 0x25, 0x3f, 0x74, 0xc8, 0xf7, 0x5a, 0x10, 0x8b, 0xbb, 0xa0, 0xf0, + 0xd0, 0xfa, 0xfa, 0x68, 0xa1, 0x15, 0x10, 0x53, 0x2c, 0x48, 0x24, 0x24, 0x8e, 0xc0, 0xab, 0xbf, + 0x8a, 0x44, 0x5b, 0x40, 0xa6, 0x6b, 0x31, 0x32, 0xfd, 0x4a, 0x82, 0x4c, 0xcf, 0x25, 0xe5, 0x9f, + 0x18, 0x8f, 0x46, 0xf8, 0x31, 0x3b, 0x84, 0x1f, 0x43, 0xca, 0xcd, 0x9d, 0x4a, 0xb9, 0x5f, 0x04, + 0x1e, 0xfd, 0x30, 0x03, 0x93, 0x72, 0x0f, 0x7a, 0x28, 0x54, 0x79, 0xa2, 0x14, 0x9a, 0x79, 0xec, + 0x14, 0x7a, 0xc7, 0xa7, 0xd0, 0x2c, 0x8f, 0xf3, 0x8b, 0xa9, 0xe3, 0x7c, 0x00, 0x7b, 0x1e, 0xc2, + 0x79, 0x29, 0x90, 0xbc, 0x75, 0x94, 0xa1, 0xd8, 0xf2, 0xd3, 0x5f, 0x46, 0x76, 0x50, 0xa5, 0x07, + 0xbc, 0x80, 0x43, 0x99, 0xe0, 0x4e, 0x91, 0x19, 0x78, 0xa7, 0xf8, 0x54, 0x09, 0x36, 0x82, 0xb3, + 0xf4, 0x05, 0xc8, 0xeb, 0x2c, 0xfd, 0x92, 0x17, 0x1b, 0x9e, 0x93, 0x58, 0x8c, 0xa1, 0xef, 0x42, + 0xd1, 0x34, 0x5c, 0x8f, 0x6d, 0xa7, 0x7f, 0x70, 0x5c, 0x1a, 0x6e, 0xf5, 0x96, 0x9c, 0x12, 0xae, + 0xd9, 0xef, 0x71, 0x71, 0x88, 0x87, 0xf6, 0xa1, 0x48, 0x6a, 0x35, 0x87, 0xba, 0x2e, 0xf5, 0x5d, + 0xba, 0x92, 0x1e, 0x7c, 0x5d, 0x4c, 0x0d, 0x75, 0xac, 0xfb, 0x58, 0x38, 0x84, 0x55, 0xff, 0xa8, + 0xc0, 0x74, 0xac, 0x66, 0x46, 0xf5, 0x3e, 0x8c, 0x35, 0x42, 0x41, 0x99, 0x96, 0xac, 0x10, 0xe9, + 0x75, 0xdd, 0x95, 0xf4, 0xd6, 0xc9, 0xda, 0xf2, 0x54, 0x07, 0xaa, 0x7f, 0x50, 0x60, 0x6e, 0xb3, + 0x5a, 0xdd, 0xdd, 0xa4, 0xa4, 0x46, 0x9d, 0x5b, 0x86, 0xe9, 0x51, 0x07, 0xbd, 0x0d, 0x59, 0x52, + 0xab, 0x49, 0xc3, 0xbe, 0x31, 0x5c, 0x63, 0x12, 0x40, 0x5b, 0xaf, 0xd5, 0x6e, 0xb6, 0x3c, 0xe7, + 0xb8, 0x32, 0x29, 0x95, 0x67, 0xd7, 0x6b, 0x35, 0xcc, 0x40, 0x91, 0xca, 0x88, 0xab, 0x69, 0x1d, + 0x51, 0x6e, 0x50, 0xb1, 0x02, 0x82, 0xb4, 0x58, 0x0f, 0x96, 0x23, 0x8b, 0xd7, 0xa0, 0xe0, 0x23, + 0xa0, 0x39, 0xc8, 0x1e, 0xd2, 0x63, 0x11, 0x61, 0x98, 0x7d, 0xa2, 0x73, 0x90, 0x3f, 0x22, 0x66, + 0x5b, 0x06, 0x2a, 0x16, 0x8d, 0xeb, 0x99, 0x35, 0x45, 0xfd, 0x77, 0x06, 0x8a, 0x6c, 0x2d, 0xfc, + 0xec, 0x3b, 0xf3, 0x77, 0xc5, 0x37, 0x62, 0x77, 0xc5, 0x72, 0xba, 0x6d, 0xe0, 0xa6, 0x0f, 0xbc, + 0xad, 0xbc, 0x95, 0xb8, 0x2d, 0xae, 0x8c, 0x02, 0x7a, 0xfa, 0x55, 0xe5, 0x6f, 0x0a, 0xcc, 0x06, + 0xb2, 0xeb, 0x3a, 0x3f, 0x57, 0xdf, 0x81, 0x62, 0xdd, 0x7f, 0x82, 0x90, 0x5b, 0x90, 0x42, 0x63, + 0xe2, 0xd5, 0xa2, 0x32, 0xcd, 0x82, 0x37, 0xe8, 0xc4, 0x21, 0x24, 0xfa, 0x09, 0x4c, 0xd1, 0x1f, + 0x79, 0xb4, 0xe5, 0xb2, 0x93, 0x83, 0xd6, 0xe5, 0x3e, 0x3c, 0xb6, 0x8a, 0x66, 0xae, 0xdb, 0x29, + 0x4d, 0xdd, 0x8c, 0x28, 0xc0, 0x31, 0x75, 0xea, 0x5f, 0xa3, 0x26, 0xcb, 0xd4, 0x79, 0x0b, 0x26, + 0x0e, 0x78, 0x26, 0xb8, 0xd2, 0xe0, 0xd5, 0xd1, 0xd3, 0xa7, 0x32, 0xc9, 0x8e, 0x7c, 0xd1, 0xe3, + 0x62, 0x1f, 0xef, 0xf3, 0xb6, 0xf6, 0x83, 0x0c, 0x4c, 0x07, 0xd6, 0x6e, 0x5a, 0xae, 0x87, 0x5e, + 0x82, 0xe2, 0x81, 0xe5, 0x7a, 0xfc, 0x04, 0xe1, 0x64, 0x51, 0x14, 0x7b, 0xb5, 0xe9, 0x77, 0xe2, + 0x70, 0x1c, 0x55, 0x21, 0xef, 0xb4, 0x4d, 0xea, 0xf3, 0xd8, 0x28, 0xe1, 0x8c, 0xdb, 0x26, 0x0d, + 0x0f, 0x17, 0xd6, 0x72, 0xb1, 0x00, 0xeb, 0xf1, 0x49, 0xf6, 0xe9, 0xfa, 0xe4, 0x97, 0x51, 0x9f, + 0x9c, 0xf9, 0xda, 0x64, 0x37, 0x5e, 0x9b, 0xbc, 0x34, 0xc2, 0x16, 0x0d, 0xa8, 0x4e, 0x7e, 0x97, + 0x85, 0x99, 0x40, 0x66, 0x9b, 0x78, 0xfa, 0x01, 0x7a, 0x19, 0x0a, 0x36, 0xf1, 0x0e, 0xaa, 0x61, + 0xbd, 0x1d, 0x2c, 0x69, 0x57, 0xf6, 0xe3, 0x40, 0x02, 0x3d, 0x0f, 0x39, 0xf6, 0x2d, 0x6b, 0x92, + 0x02, 0xa3, 0x33, 0x26, 0x85, 0x79, 0x2f, 0xba, 0x01, 0xb3, 0x22, 0x39, 0x38, 0x34, 0x87, 0x14, + 0x75, 0xf3, 0x33, 0xdd, 0x4e, 0x69, 0x76, 0x33, 0x3e, 0x84, 0x93, 0xb2, 0xe8, 0x20, 0xcc, 0xd5, + 0x1c, 0xb7, 0xf8, 0xc6, 0x08, 0x16, 0x73, 0x18, 0x4d, 0x26, 0xa9, 0x38, 0xec, 0x82, 0x6a, 0x7d, + 0x68, 0xea, 0xe6, 0x9f, 0x6a, 0x98, 0x2e, 0x5e, 0x87, 0xa9, 0xe8, 0x42, 0x47, 0x3a, 0x53, 0xdf, + 0x8f, 0x86, 0x38, 0xcb, 0x3d, 0xf4, 0x06, 0xe4, 0x9b, 0xcc, 0xf8, 0xe4, 0x3b, 0x5d, 0x5a, 0xa7, + 0x55, 0x8a, 0x2c, 0x4e, 0xf8, 0x27, 0x16, 0x48, 0xe8, 0xdb, 0x30, 0x5e, 0xe7, 0xd4, 0x27, 0xa3, + 0x7a, 0x94, 0x73, 0x49, 0x72, 0x26, 0xaf, 0x23, 0xc4, 0x37, 0x96, 0x60, 0x0c, 0x96, 0xf0, 0x93, + 0x48, 0xf2, 0xc2, 0x28, 0xb0, 0xe2, 0x08, 0x13, 0xb0, 0xe2, 0x1b, 0x4b, 0x30, 0xf5, 0xb7, 0x4a, + 0xc4, 0x25, 0xbc, 0x10, 0xae, 0x42, 0x9e, 0x31, 0x9d, 0x5f, 0x0b, 0x8e, 0x42, 0x6e, 0x8c, 0x2c, + 0xc3, 0xec, 0x61, 0x2d, 0x17, 0x0b, 0x30, 0x74, 0x17, 0x26, 0x6a, 0x62, 0xd7, 0xa5, 0x5b, 0x46, + 0xc6, 0xe5, 0x07, 0x89, 0x8c, 0x1c, 0xec, 0x83, 0xa9, 0x0f, 0xa2, 0xe7, 0x96, 0x2c, 0x69, 0x2d, + 0x98, 0x6c, 0x88, 0xf2, 0x14, 0xd3, 0xba, 0x6f, 0xc7, 0x5a, 0xea, 0x9a, 0x36, 0x19, 0x91, 0xcf, + 0x48, 0x83, 0xfc, 0xeb, 0x02, 0x03, 0xc5, 0x51, 0x0d, 0xea, 0x21, 0x4c, 0xfb, 0xe7, 0x84, 0x20, + 0x86, 0xb5, 0x68, 0x58, 0x15, 0x2b, 0xaa, 0xef, 0x12, 0x3e, 0x7a, 0xd2, 0x29, 0xcd, 0xc7, 0xc4, + 0x79, 0x46, 0xcb, 0xe8, 0x19, 0x7e, 0x71, 0xf9, 0x7b, 0x06, 0x0a, 0x7e, 0xf9, 0x8b, 0xbe, 0x07, + 0x05, 0xff, 0x58, 0x92, 0x21, 0x9c, 0xc6, 0xaf, 0x51, 0xe5, 0x21, 0x65, 0xf9, 0xdd, 0x38, 0x80, + 0x64, 0xab, 0xb1, 0xc3, 0x9f, 0x39, 0x82, 0xd5, 0xf0, 0x9f, 0x35, 0xf8, 0x08, 0x7a, 0x0d, 0x0a, + 0xfc, 0x27, 0x24, 0xdd, 0x32, 0x25, 0x5f, 0x2d, 0x07, 0x14, 0x28, 0xfb, 0x4f, 0x3a, 0xa5, 0x29, + 0xff, 0x5b, 0x52, 0xa2, 0x6c, 0xa1, 0x5b, 0x90, 0xf5, 0x4c, 0xbf, 0x80, 0x4b, 0xc1, 0xd1, 0xd5, + 0xad, 0x3d, 0xc1, 0x22, 0x95, 0x09, 0x56, 0x88, 0x57, 0xb7, 0xf6, 0x30, 0x03, 0x40, 0xef, 0xc0, + 0xb8, 0xc3, 0x02, 0xc0, 0x95, 0x6c, 0x74, 0x6d, 0x38, 0x94, 0xa0, 0x7a, 0xa3, 0x55, 0x33, 0x5a, + 0x8d, 0xe0, 0x31, 0x2a, 0x7c, 0x79, 0xe0, 0x68, 0x58, 0xa2, 0xaa, 0x0d, 0x98, 0x4d, 0xdc, 0xb3, + 0x50, 0x39, 0xf6, 0xce, 0xf2, 0xe5, 0xc4, 0x3b, 0xcb, 0xa4, 0x14, 0x8b, 0x3c, 0xaf, 0x5c, 0x88, + 0xd1, 0x52, 0x98, 0x26, 0x77, 0x59, 0xa7, 0x64, 0x29, 0xf5, 0xd7, 0x59, 0x98, 0xf7, 0x35, 0x85, + 0x6f, 0x3a, 0xaf, 0xc6, 0x74, 0xbd, 0x90, 0xd0, 0xf5, 0x6c, 0xcf, 0x84, 0xff, 0x3f, 0xea, 0x3c, + 0xdd, 0x47, 0x9d, 0x7f, 0x2a, 0x30, 0x13, 0xbf, 0xa9, 0x06, 0x79, 0xac, 0x0c, 0xca, 0x63, 0xf4, + 0x26, 0x4c, 0xc8, 0x7b, 0x79, 0xfa, 0x83, 0x22, 0x79, 0xd9, 0xe7, 0x9c, 0x28, 0x1b, 0xd8, 0x87, + 0x43, 0x8d, 0xd8, 0x95, 0x5e, 0x14, 0x40, 0xaf, 0xa4, 0x07, 0x4f, 0xff, 0x00, 0xf9, 0x20, 0x03, + 0xe7, 0xfa, 0xe5, 0x11, 0xfa, 0x31, 0xcc, 0x07, 0x6f, 0x31, 0x7e, 0xa7, 0xe4, 0xa7, 0xcf, 0xf4, + 0x48, 0xfc, 0x9c, 0x5c, 0xc8, 0xfc, 0x9d, 0x24, 0x2a, 0xee, 0x55, 0x84, 0x4c, 0x98, 0xe6, 0x79, + 0x1b, 0x68, 0xfe, 0x2f, 0x1e, 0xcc, 0xf9, 0x4b, 0x30, 0x8e, 0xa2, 0xe1, 0x38, 0xb8, 0xfa, 0xa1, + 0x02, 0xea, 0x1e, 0xd5, 0x1d, 0xea, 0xfd, 0xef, 0xfd, 0x70, 0xfe, 0x33, 0x05, 0x2e, 0xa4, 0xf8, + 0xc9, 0xfb, 0xf3, 0x59, 0xdc, 0x3f, 0x32, 0x50, 0x0c, 0x08, 0x1d, 0xbd, 0xa7, 0xc0, 0xac, 0x4e, + 0x1d, 0xcf, 0xa8, 0x1b, 0x3a, 0xf1, 0x68, 0xe4, 0xe4, 0x7e, 0x3d, 0xcd, 0xcf, 0xfa, 0xc3, 0xfc, + 0x5f, 0xf9, 0x92, 0x5c, 0xc1, 0xec, 0x46, 0x5c, 0x09, 0x4e, 0x6a, 0x45, 0xd7, 0x61, 0xa6, 0x69, + 0xb4, 0x8c, 0x66, 0xbb, 0x79, 0x97, 0x3a, 0xac, 0xec, 0x94, 0xd6, 0xa2, 0x6e, 0xa7, 0x34, 0xb3, + 0x1d, 0x1b, 0xc1, 0x09, 0x49, 0xa4, 0xc3, 0x84, 0x65, 0x47, 0xf3, 0x6e, 0x6d, 0x84, 0x43, 0x4d, + 0xdb, 0x11, 0x53, 0x13, 0x15, 0xb8, 0xec, 0xc5, 0x3e, 0x32, 0x2b, 0x81, 0xa3, 0x92, 0x23, 0x95, + 0xc0, 0xff, 0xca, 0x40, 0xa1, 0xaa, 0xdb, 0x5f, 0x8c, 0x57, 0xa5, 0xdd, 0xd8, 0xab, 0x52, 0x8a, + 0x9f, 0xf0, 0x7c, 0xcb, 0x07, 0x3e, 0x2a, 0xbd, 0x99, 0x78, 0x54, 0xba, 0x32, 0x02, 0xe6, 0xe9, + 0x6f, 0x4a, 0x3f, 0xcf, 0xc0, 0x94, 0x2f, 0x7a, 0xe6, 0x6f, 0xd7, 0x3b, 0xf1, 0xdb, 0xf5, 0xa5, + 0xf4, 0x5e, 0x1a, 0x70, 0xb9, 0x9e, 0x09, 0x9d, 0xc3, 0x76, 0x43, 0x9d, 0x83, 0x99, 0xb8, 0x5f, + 0xf9, 0x7f, 0x38, 0xaa, 0x0e, 0xa9, 0xd7, 0x0d, 0x7d, 0xcf, 0x36, 0x0d, 0xef, 0xcc, 0x07, 0x6f, + 0x35, 0x16, 0xbc, 0x29, 0x9e, 0xd6, 0xa2, 0xd6, 0xa7, 0xf8, 0x0f, 0x47, 0x2e, 0xed, 0x7f, 0x38, + 0x62, 0xb8, 0xa7, 0x07, 0xf1, 0x47, 0x19, 0x98, 0x8b, 0x8a, 0x9f, 0xf9, 0x40, 0xde, 0x8b, 0x07, + 0xb2, 0x36, 0x9a, 0xb7, 0x06, 0x04, 0x33, 0x8a, 0x3b, 0x89, 0x07, 0xf4, 0x39, 0x40, 0x7d, 0xfc, + 0xac, 0x3d, 0x7c, 0xb4, 0x34, 0xf6, 0xf1, 0xa3, 0xa5, 0xb1, 0x4f, 0x1e, 0x2d, 0x8d, 0xbd, 0xdb, + 0x5d, 0x52, 0x1e, 0x76, 0x97, 0x94, 0x8f, 0xbb, 0x4b, 0xca, 0x27, 0xdd, 0x25, 0xe5, 0x4f, 0xdd, + 0x25, 0xe5, 0xfd, 0x3f, 0x2f, 0x8d, 0xbd, 0x5d, 0xf0, 0x95, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, + 0x05, 0x01, 0x66, 0x3b, 0xfd, 0x28, 0x00, 0x00, } func (m *ConfigMapsDefaultLocalObjectReference) Marshal() (dAtA []byte, err error) { @@ -2288,11 +2289,15 @@ func (m *HTTPRouteHost) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - i -= len(m.Hostname) - copy(dAtA[i:], m.Hostname) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname))) - i-- - dAtA[i] = 0xa + if len(m.Hostnames) > 0 { + for iNdEx := len(m.Hostnames) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Hostnames[iNdEx]) + copy(dAtA[i:], m.Hostnames[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostnames[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } @@ -3661,8 +3666,12 @@ func (m *HTTPRouteHost) Size() (n int) { } var l int _ = l - l = len(m.Hostname) - n += 1 + l + sovGenerated(uint64(l)) + if len(m.Hostnames) > 0 { + for _, s := range m.Hostnames { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } if len(m.Rules) > 0 { for _, e := range m.Rules { l = e.Size() @@ -4315,7 +4324,7 @@ func (this *HTTPRouteHost) String() string { } repeatedStringForRules += "}" s := strings.Join([]string{`&HTTPRouteHost{`, - `Hostname:` + fmt.Sprintf("%v", this.Hostname) + `,`, + `Hostnames:` + fmt.Sprintf("%v", this.Hostnames) + `,`, `Rules:` + repeatedStringForRules + `,`, `ExtensionRef:` + strings.Replace(this.ExtensionRef.String(), "ConfigMapsDefaultLocalObjectReference", "ConfigMapsDefaultLocalObjectReference", 1) + `,`, `}`, @@ -7383,7 +7392,7 @@ func (m *HTTPRouteHost) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Hostname", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Hostnames", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7411,7 +7420,7 @@ func (m *HTTPRouteHost) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Hostname = string(dAtA[iNdEx:postIndex]) + m.Hostnames = append(m.Hostnames, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex case 2: if wireType != 2 { diff --git a/api/v1alpha1/generated.proto b/api/v1alpha1/generated.proto index 81d90d8c4a..6b37fec0de 100644 --- a/api/v1alpha1/generated.proto +++ b/api/v1alpha1/generated.proto @@ -517,8 +517,10 @@ message HTTPRouteFilter { optional ConfigMapsDefaultLocalObjectReference extensionRef = 2; } -// HTTPRouteHost is the configuration for a given host. +// HTTPRouteHost is the configuration for a given set of hosts. message HTTPRouteHost { + // Hostnames defines a set of hostname that should match against + // the HTTP Host header to select a HTTPRoute to process a the request. // Hostname is the fully qualified domain name of a network host, // as defined by RFC 3986. Note the following deviations from the // "host" part of the URI as defined in the RFC: @@ -526,17 +528,27 @@ message HTTPRouteHost { // 1. IPs are not allowed. // 2. The `:` delimiter is not respected because ports are not allowed. // - // Incoming requests are matched against Hostname before processing HTTPRoute - // rules. For example, if the request header contains host: foo.example.com, - // an HTTPRoute with hostname foo.example.com will match. However, an - // HTTPRoute with hostname example.com or bar.example.com will not match. - // If Hostname is unspecified, the Gateway routes all traffic based on - // the specified rules. + // Incoming requests are matched against the hostnames before the + // HTTPRoute rules. If no hostname is specified, traffic is routed + // based on the HTTPRouteRules. + // + // Hostname can be "precise" which is a domain name without the terminating + // dot of a network host (e.g. "foo.example.com") or "wildcard", which is + // a domain name prefixed with a single wildcard label (e.g. "*.example.com"). + // The wildcard character '*' must appear by itself as the first DNS + // label and matches only a single label. + // You cannot have a wildcard label by itself (e.g. Host == "*"). + // Requests will be matched against the Host field in the following order: + // 1. If Host is precise, the request matches this rule if + // the http host header is equal to Host. + // 2. If Host is a wildcard, then the request matches this rule if + // the http host header is to equal to the suffix + // (removing the first label) of the wildcard rule. // // Support: Core // // +optional - optional string hostname = 1; + repeated string hostnames = 1; // Rules are a list of HTTP matchers, filters and actions. repeated HTTPRouteRule rules = 2; diff --git a/api/v1alpha1/httproute_types.go b/api/v1alpha1/httproute_types.go index 79a9050724..e352cf21e8 100644 --- a/api/v1alpha1/httproute_types.go +++ b/api/v1alpha1/httproute_types.go @@ -31,8 +31,10 @@ type HTTPRouteSpec struct { Default *HTTPRouteHost `json:"default" protobuf:"bytes,2,opt,name=default"` } -// HTTPRouteHost is the configuration for a given host. +// HTTPRouteHost is the configuration for a given set of hosts. type HTTPRouteHost struct { + // Hostnames defines a set of hostname that should match against + // the HTTP Host header to select a HTTPRoute to process a the request. // Hostname is the fully qualified domain name of a network host, // as defined by RFC 3986. Note the following deviations from the // "host" part of the URI as defined in the RFC: @@ -40,17 +42,27 @@ type HTTPRouteHost struct { // 1. IPs are not allowed. // 2. The `:` delimiter is not respected because ports are not allowed. // - // Incoming requests are matched against Hostname before processing HTTPRoute - // rules. For example, if the request header contains host: foo.example.com, - // an HTTPRoute with hostname foo.example.com will match. However, an - // HTTPRoute with hostname example.com or bar.example.com will not match. - // If Hostname is unspecified, the Gateway routes all traffic based on - // the specified rules. + // Incoming requests are matched against the hostnames before the + // HTTPRoute rules. If no hostname is specified, traffic is routed + // based on the HTTPRouteRules. + // + // Hostname can be "precise" which is a domain name without the terminating + // dot of a network host (e.g. "foo.example.com") or "wildcard", which is + // a domain name prefixed with a single wildcard label (e.g. "*.example.com"). + // The wildcard character '*' must appear by itself as the first DNS + // label and matches only a single label. + // You cannot have a wildcard label by itself (e.g. Host == "*"). + // Requests will be matched against the Host field in the following order: + // 1. If Host is precise, the request matches this rule if + // the http host header is equal to Host. + // 2. If Host is a wildcard, then the request matches this rule if + // the http host header is to equal to the suffix + // (removing the first label) of the wildcard rule. // // Support: Core // // +optional - Hostname string `json:"hostname,omitempty" protobuf:"bytes,1,opt,name=hostname"` + Hostnames []string `json:"hostnames,omitempty" protobuf:"bytes,1,opt,name=hostnames"` // Rules are a list of HTTP matchers, filters and actions. Rules []HTTPRouteRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index de64ca3f3a..12c9091e0c 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -436,6 +436,11 @@ func (in *HTTPRouteFilter) DeepCopy() *HTTPRouteFilter { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *HTTPRouteHost) DeepCopyInto(out *HTTPRouteHost) { *out = *in + if in.Hostnames != nil { + in, out := &in.Hostnames, &out.Hostnames + *out = make([]string, len(*in)) + copy(*out, *in) + } if in.Rules != nil { in, out := &in.Rules, &out.Rules *out = make([]HTTPRouteRule, len(*in)) diff --git a/config/crd/bases/networking.x-k8s.io_httproutes.yaml b/config/crd/bases/networking.x-k8s.io_httproutes.yaml index f126c6728e..e3a5739ab1 100644 --- a/config/crd/bases/networking.x-k8s.io_httproutes.yaml +++ b/config/crd/bases/networking.x-k8s.io_httproutes.yaml @@ -79,19 +79,31 @@ spec: - name - resource type: object - hostname: - description: "Hostname is the fully qualified domain name of a - network host, as defined by RFC 3986. Note the following deviations - from the \"host\" part of the URI as defined in the RFC: \n - 1. IPs are not allowed. 2. The `:` delimiter is not respected - because ports are not allowed. \n Incoming requests are matched - against Hostname before processing HTTPRoute rules. For example, - if the request header contains host: foo.example.com, an HTTPRoute - with hostname foo.example.com will match. However, an HTTPRoute - with hostname example.com or bar.example.com will not match. - If Hostname is unspecified, the Gateway routes all traffic based - on the specified rules. \n Support: Core" - type: string + hostnames: + description: "Hostnames defines a set of hostname that should + match against the HTTP Host header to select a HTTPRoute to + process a the request. Hostname is the fully qualified domain + name of a network host, as defined by RFC 3986. Note the following + deviations from the \"host\" part of the URI as defined in the + RFC: \n 1. IPs are not allowed. 2. The `:` delimiter is not + respected because ports are not allowed. \n Incoming requests + are matched against the hostnames before the HTTPRoute rules. + If no hostname is specified, traffic is routed based on the + HTTPRouteRules. \n Hostname can be \"precise\" which is a domain + name without the terminating dot of a network host (e.g. \"foo.example.com\") + or \"wildcard\", which is a domain name prefixed with a single + wildcard label (e.g. \"*.example.com\"). The wildcard character + '*' must appear by itself as the first DNS label and matches + only a single label. You cannot have a wildcard label by itself + (e.g. Host == \"*\"). Requests will be matched against the Host + field in the following order: 1. If Host is precise, the request + matches this rule if the http host header is equal to Host. + 2. If Host is a wildcard, then the request matches this rule + if the http host header is to equal to the suffix (removing + the first label) of the wildcard rule. \n Support: Core" + items: + type: string + type: array rules: description: Rules are a list of HTTP matchers, filters and actions. items: @@ -369,7 +381,8 @@ spec: hosts: description: Hosts is a list of Host definitions. items: - description: HTTPRouteHost is the configuration for a given host. + description: HTTPRouteHost is the configuration for a given set + of hosts. properties: extensionRef: description: "ExtensionRef is an optional, implementation-specific @@ -410,19 +423,32 @@ spec: - name - resource type: object - hostname: - description: "Hostname is the fully qualified domain name of - a network host, as defined by RFC 3986. Note the following + hostnames: + description: "Hostnames defines a set of hostname that should + match against the HTTP Host header to select a HTTPRoute to + process a the request. Hostname is the fully qualified domain + name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in the RFC: \n 1. IPs are not allowed. 2. The `:` delimiter is not respected because ports are not allowed. \n Incoming requests - are matched against Hostname before processing HTTPRoute rules. - For example, if the request header contains host: foo.example.com, - an HTTPRoute with hostname foo.example.com will match. However, - an HTTPRoute with hostname example.com or bar.example.com - will not match. If Hostname is unspecified, the Gateway routes - all traffic based on the specified rules. \n Support: Core" - type: string + are matched against the hostnames before the HTTPRoute rules. + If no hostname is specified, traffic is routed based on the + HTTPRouteRules. \n Hostname can be \"precise\" which is a + domain name without the terminating dot of a network host + (e.g. \"foo.example.com\") or \"wildcard\", which is a domain + name prefixed with a single wildcard label (e.g. \"*.example.com\"). + The wildcard character '*' must appear by itself as the first + DNS label and matches only a single label. You cannot have + a wildcard label by itself (e.g. Host == \"*\"). Requests + will be matched against the Host field in the following order: + 1. If Host is precise, the request matches this rule if the + http host header is equal to Host. 2. If Host is a wildcard, + then the request matches this rule if the http host header + is to equal to the suffix (removing the first label) of + the wildcard rule. \n Support: Core" + items: + type: string + type: array rules: description: Rules are a list of HTTP matchers, filters and actions. diff --git a/docs-src/spec.md b/docs-src/spec.md index e0a1394042..82f8f055ea 100644 --- a/docs-src/spec.md +++ b/docs-src/spec.md @@ -1486,7 +1486,7 @@ that includes the HTTPRoute will be true.
HTTPRouteSpec)-
HTTPRouteHost is the configuration for a given host.
+HTTPRouteHost is the configuration for a given set of hosts.
-hostname
+hostnames
-string
+[]string
|
(Optional)
- Hostname is the fully qualified domain name of a network host, + Hostnames defines a set of hostname that should match against +the HTTP Host header to select a HTTPRoute to process a the request. +Hostname is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the “host” part of the URI as defined in the RFC:
Incoming requests are matched against Hostname before processing HTTPRoute -rules. For example, if the request header contains host: foo.example.com, -an HTTPRoute with hostname foo.example.com will match. However, an -HTTPRoute with hostname example.com or bar.example.com will not match. -If Hostname is unspecified, the Gateway routes all traffic based on -the specified rules. +Incoming requests are matched against the hostnames before the +HTTPRoute rules. If no hostname is specified, traffic is routed +based on the HTTPRouteRules. +Hostname can be “precise” which is a domain name without the terminating +dot of a network host (e.g. “foo.example.com”) or “wildcard”, which is +a domain name prefixed with a single wildcard label (e.g. “.example.com”). +The wildcard character ‘’ must appear by itself as the first DNS +label and matches only a single label. +You cannot have a wildcard label by itself (e.g. Host == “*”). +Requests will be matched against the Host field in the following order: +1. If Host is precise, the request matches this rule if +the http host header is equal to Host. +2. If Host is a wildcard, then the request matches this rule if +the http host header is to equal to the suffix +(removing the first label) of the wildcard rule. Support: Core |
-hostname
+hostnames
-string
+[]string
|
(Optional)
- Hostname is the fully qualified domain name of a network host, + Hostnames defines a set of hostname that should match against +the HTTP Host header to select a HTTPRoute to process a the request. +Hostname is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the “host” part of the URI as defined in the RFC:
Incoming requests are matched against Hostname before processing HTTPRoute -rules. For example, if the request header contains host: foo.example.com, -an HTTPRoute with hostname foo.example.com will match. However, an -HTTPRoute with hostname example.com or bar.example.com will not match. -If Hostname is unspecified, the Gateway routes all traffic based on -the specified rules. +Incoming requests are matched against the hostnames before the +HTTPRoute rules. If no hostname is specified, traffic is routed +based on the HTTPRouteRules. +Hostname can be “precise” which is a domain name without the terminating +dot of a network host (e.g. “foo.example.com”) or “wildcard”, which is +a domain name prefixed with a single wildcard label (e.g. “.example.com”). +The wildcard character ‘’ must appear by itself as the first DNS +label and matches only a single label. +You cannot have a wildcard label by itself (e.g. Host == “”). +Requests will be matched against the Host field in the following order: +1. If Host is precise, the request matches this rule if +the http host header is equal to Host. +2. If Host is a wildcard, then the request matches this rule if +the http host header is to equal to the suffix +(removing the first label) of the wildcard rule. Support: Core |
- Type of the Address. This is one of the AddressType constants. +Type of the Address. This is one of the AddressType constants. Support: Extended |
@@ -2802,7 +2813,7 @@
(Optional)
MinimumVersion of TLS allowed. It is recommended to use one of
-the TLS constants above. Note: MinimumVersion is not strongly
+the TLS* constants above. Note: MinimumVersion is not strongly
typed to allow implementation-specific versions to be used without
requiring updates to the API types. String must be of the form
“ |