1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// This file was GENERATED by command: 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// pump.py gtest-type-util.h.pump 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// DO NOT EDIT BY HAND!!! 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Copyright 2008 Google Inc. 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// All Rights Reserved. 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Redistribution and use in source and binary forms, with or without 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// modification, are permitted provided that the following conditions are 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// met: 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// * Redistributions of source code must retain the above copyright 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// notice, this list of conditions and the following disclaimer. 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// * Redistributions in binary form must reproduce the above 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// copyright notice, this list of conditions and the following disclaimer 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// in the documentation and/or other materials provided with the 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// distribution. 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// * Neither the name of Google Inc. nor the names of its 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// contributors may be used to endorse or promote products derived from 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// this software without specific prior written permission. 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Author: wan@google.com (Zhanyong Wan) 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Type utilities needed for implementing typed and type-parameterized 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND! 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Currently we support at most 50 types in a list, and at most 50 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// type-parameterized tests in one type-parameterized test case. 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Please contact googletestframework@googlegroups.com if you need 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// more. 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "gtest/internal/gtest-port.h" 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "gtest/internal/gtest-string.h" 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// #ifdef __GNUC__ is too general here. It is possible to use gcc without using 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// libstdc++ (which is where cxxabi.h comes from). 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# ifdef __GLIBCXX__ 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# include <cxxabi.h> 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# elif defined(__HP_aCC) 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# include <acxx_demangle.h> 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# endif // __GLIBCXX__ 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnamespace testing { 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnamespace internal { 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// GetTypeName<T>() returns a human-readable name of type T. 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// NB: This function is also used in Google Mock, so don't move it inside of 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// the typed-test-only section below. 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T> 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgString GetTypeName() { 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# if GTEST_HAS_RTTI 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const char* const name = typeid(T).name(); 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# if defined(__GLIBCXX__) || defined(__HP_aCC) 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int status = 0; 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org // gcc's implementation of typeid(T).name() mangles the type name, 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org // so we have to demangle it. 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# ifdef __GLIBCXX__ 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org using abi::__cxa_demangle; 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# endif // __GLIBCXX__ 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org char* const readable_name = __cxa_demangle(name, 0, 0, &status); 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const String name_str(status == 0 ? readable_name : name); 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org free(readable_name); 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return name_str; 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# else 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return name; 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# endif // __GLIBCXX__ || __HP_aCC 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# else 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return "<type>"; 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# endif // GTEST_HAS_RTTI 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// AssertyTypeEq<T1, T2>::type is defined iff T1 and T2 are the same 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// type. This can be used as a compile-time assertion to ensure that 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// two types are equal. 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2> 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct AssertTypeEq; 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T> 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct AssertTypeEq<T, T> { 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef bool type; 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// A unique type used as the default value for the arguments of class 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// template Types. This allows us to simulate variadic templates 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// (e.g. Types<int>, Type<int, double>, and etc), which C++ doesn't 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// support directly. 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct None {}; 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// The following family of struct and struct templates are used to 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// represent type lists. In particular, TypesN<T1, T2, ..., TN> 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// represents a type list with N types (T1, T2, ..., and TN) in it. 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Except for Types0, every struct in the family has two member types: 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Head for the first type in the list, and Tail for the rest of the 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// list. 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// The empty type list. 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types0 {}; 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Type lists of length 1, 2, 3, and so on. 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1> 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types1 { 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types0 Tail; 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2> 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types2 { 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types1<T2> Tail; 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3> 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types3 { 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types2<T2, T3> Tail; 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4> 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types4 { 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types3<T2, T3, T4> Tail; 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5> 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types5 { 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types4<T2, T3, T4, T5> Tail; 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6> 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types6 { 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types5<T2, T3, T4, T5, T6> Tail; 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7> 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types7 { 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types6<T2, T3, T4, T5, T6, T7> Tail; 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8> 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types8 { 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail; 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9> 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types9 { 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail; 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10> 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types10 { 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail; 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11> 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types11 { 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail; 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12> 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types12 { 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail; 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13> 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types13 { 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail; 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14> 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types14 { 215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail; 217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15> 222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types15 { 223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15> Tail; 226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16> 232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types16 { 233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16> Tail; 236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17> 242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types17 { 243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17> Tail; 246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18> 252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types18 { 253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18> Tail; 256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19> 262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types19 { 263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19> Tail; 266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20> 272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types20 { 273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20> Tail; 276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21> 283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types21 { 284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21> Tail; 287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22> 294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types22 { 295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22> Tail; 298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23> 305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types23 { 306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 308f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23> Tail; 309f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 310f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 311f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 312f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 313f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 314f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 315f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24> 316f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types24 { 317f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 318f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 319f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail; 320f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 321f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 322f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 323f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 324f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 325f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 326f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25> 327f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types25 { 328f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 329f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 330f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail; 331f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 332f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 333f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 334f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 335f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 336f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 337f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 338f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26> 339f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types26 { 340f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 341f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 342f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail; 343f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 344f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 345f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 346f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 347f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 348f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 349f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 350f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27> 351f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types27 { 352f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 353f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 354f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail; 355f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 356f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 357f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 358f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 359f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 360f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 361f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 362f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28> 363f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types28 { 364f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 365f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 366f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail; 367f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 368f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 369f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 370f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 371f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 372f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 373f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 374f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29> 375f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types29 { 376f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 377f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 378f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 379f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29> Tail; 380f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 381f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 382f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 383f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 384f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 385f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 386f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 387f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30> 388f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types30 { 389f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 390f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 391f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 392f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30> Tail; 393f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 394f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 395f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 396f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 397f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 398f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 399f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 400f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 401f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31> 402f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types31 { 403f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 404f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 405f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 406f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31> Tail; 407f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 408f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 409f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 410f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 411f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 412f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 413f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 414f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 415f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32> 416f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types32 { 417f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 418f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 419f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 420f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32> Tail; 421f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 422f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 423f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 424f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 425f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 426f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 427f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 428f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 429f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33> 430f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types33 { 431f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 432f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 433f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 434f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33> Tail; 435f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 436f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 437f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 438f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 439f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 440f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 441f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 442f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 443f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34> 444f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types34 { 445f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 446f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 447f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 448f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34> Tail; 449f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 450f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 451f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 452f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 453f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 454f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 455f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 456f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 457f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35> 458f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types35 { 459f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 460f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 461f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 462f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35> Tail; 463f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 464f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 465f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 466f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 467f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 468f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 469f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 470f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 471f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 472f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36> 473f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types36 { 474f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 475f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 476f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 477f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36> Tail; 478f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 479f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 480f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 481f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 482f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 483f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 484f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 485f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 486f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 487f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37> 488f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types37 { 489f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 490f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 491f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 492f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37> Tail; 493f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 494f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 495f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 496f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 497f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 498f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 499f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 500f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 501f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 502f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38> 503f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types38 { 504f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 505f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 506f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 507f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail; 508f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 509f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 510f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 511f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 512f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 513f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 514f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 515f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 516f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 517f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39> 518f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types39 { 519f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 520f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 521f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 522f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail; 523f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 524f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 525f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 526f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 527f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 528f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 529f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 530f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 531f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 532f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40> 533f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types40 { 534f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 535f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 536f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 537f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail; 538f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 539f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 540f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 541f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 542f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 543f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 544f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 545f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 546f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 547f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 548f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41> 549f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types41 { 550f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 551f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 552f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 553f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail; 554f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 555f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 556f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 557f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 558f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 559f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 560f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 561f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 562f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 563f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 564f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42> 565f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types42 { 566f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 567f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 568f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 569f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> Tail; 570f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 571f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 572f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 573f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 574f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 575f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 576f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 577f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 578f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 579f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 580f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43> 581f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types43 { 582f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 583f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 584f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 585f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 586f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43> Tail; 587f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 588f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 589f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 590f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 591f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 592f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 593f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 594f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 595f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 596f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 597f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44> 598f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types44 { 599f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 600f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 601f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 602f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 603f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44> Tail; 604f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 605f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 606f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 607f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 608f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 609f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 610f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 611f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 612f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 613f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 614f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45> 615f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types45 { 616f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 617f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 618f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 619f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 620f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44, T45> Tail; 621f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 622f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 623f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 624f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 625f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 626f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 627f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 628f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 629f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 630f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 631f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 632f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46> 633f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types46 { 634f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 635f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 636f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 637f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 638f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44, T45, T46> Tail; 639f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 640f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 641f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 642f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 643f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 644f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 645f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 646f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 647f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 648f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 649f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 650f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47> 651f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types47 { 652f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 653f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 654f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 655f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 656f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44, T45, T46, T47> Tail; 657f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 658f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 659f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 660f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 661f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 662f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 663f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 664f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 665f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 666f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 667f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 668f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47, typename T48> 669f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types48 { 670f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 671f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 672f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 673f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 674f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44, T45, T46, T47, T48> Tail; 675f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 676f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 677f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 678f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 679f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 680f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 681f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 682f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 683f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 684f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 685f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 686f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47, typename T48, typename T49> 687f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types49 { 688f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 689f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 690f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 691f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 692f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44, T45, T46, T47, T48, T49> Tail; 693f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 694f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 695f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 696f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 697f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 698f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 699f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 700f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 701f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 702f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 703f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 704f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47, typename T48, typename T49, typename T50> 705f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types50 { 706f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef T1 Head; 707f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 708f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 709f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 710f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44, T45, T46, T47, T48, T49, T50> Tail; 711f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 712f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 713f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 714f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} // namespace internal 715f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 716f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// We don't want to require the users to write TypesN<...> directly, 717f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// as that would require them to count the length. Types<...> is much 718f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// easier to write, but generates horrible messages when there is a 719f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// compiler error, as gcc insists on printing out each template 720f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// argument, even if it has the default value (this means Types<int> 721f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// will appear as Types<int, None, None, ..., None> in the compiler 722f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// errors). 723f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 724f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Our solution is to combine the best part of the two approaches: a 725f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// user would write Types<T1, ..., TN>, and Google Test will translate 726f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// that to TypesN<T1, ..., TN> internally to make error messages 727f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// readable. The translation is done by the 'type' member of the 728f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Types template. 729f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1 = internal::None, typename T2 = internal::None, 730f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T3 = internal::None, typename T4 = internal::None, 731f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T5 = internal::None, typename T6 = internal::None, 732f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T7 = internal::None, typename T8 = internal::None, 733f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T9 = internal::None, typename T10 = internal::None, 734f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11 = internal::None, typename T12 = internal::None, 735f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T13 = internal::None, typename T14 = internal::None, 736f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T15 = internal::None, typename T16 = internal::None, 737f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T17 = internal::None, typename T18 = internal::None, 738f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T19 = internal::None, typename T20 = internal::None, 739f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21 = internal::None, typename T22 = internal::None, 740f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T23 = internal::None, typename T24 = internal::None, 741f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T25 = internal::None, typename T26 = internal::None, 742f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T27 = internal::None, typename T28 = internal::None, 743f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T29 = internal::None, typename T30 = internal::None, 744f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31 = internal::None, typename T32 = internal::None, 745f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T33 = internal::None, typename T34 = internal::None, 746f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T35 = internal::None, typename T36 = internal::None, 747f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T37 = internal::None, typename T38 = internal::None, 748f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T39 = internal::None, typename T40 = internal::None, 749f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41 = internal::None, typename T42 = internal::None, 750f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T43 = internal::None, typename T44 = internal::None, 751f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T45 = internal::None, typename T46 = internal::None, 752f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T47 = internal::None, typename T48 = internal::None, 753f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T49 = internal::None, typename T50 = internal::None> 754f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types { 755f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 756f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 757f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 758f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> type; 759f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 760f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 761f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <> 762f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<internal::None, internal::None, internal::None, internal::None, 763f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 764f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 765f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 766f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 767f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 768f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 769f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 770f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 771f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 772f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 773f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 774f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 775f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types0 type; 776f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 777f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1> 778f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, internal::None, internal::None, internal::None, 779f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 780f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 781f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 782f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 783f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 784f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 785f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 786f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 787f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 788f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 789f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 790f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 791f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types1<T1> type; 792f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 793f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2> 794f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, internal::None, internal::None, internal::None, 795f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 796f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 797f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 798f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 799f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 800f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 801f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 802f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 803f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 804f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 805f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 806f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 807f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types2<T1, T2> type; 808f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 809f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3> 810f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, internal::None, internal::None, internal::None, 811f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 812f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 813f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 814f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 815f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 816f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 817f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 818f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 819f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 820f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 821f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 822f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types3<T1, T2, T3> type; 823f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 824f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4> 825f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, internal::None, internal::None, internal::None, 826f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 827f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 828f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 829f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 830f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 831f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 832f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 833f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 834f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 835f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 836f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 837f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types4<T1, T2, T3, T4> type; 838f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 839f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5> 840f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, internal::None, internal::None, 841f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 842f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 843f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 844f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 845f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 846f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 847f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 848f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 849f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 850f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 851f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 852f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types5<T1, T2, T3, T4, T5> type; 853f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 854f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 855f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6> 856f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, internal::None, internal::None, 857f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 858f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 859f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 860f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 861f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 862f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 863f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 864f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 865f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 866f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 867f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 868f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types6<T1, T2, T3, T4, T5, T6> type; 869f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 870f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 871f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7> 872f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, internal::None, internal::None, 873f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 874f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 875f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 876f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 877f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 878f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 879f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 880f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 881f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 882f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 883f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 884f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7> type; 885f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 886f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 887f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8> 888f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, internal::None, internal::None, 889f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 890f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 891f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 892f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 893f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 894f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 895f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 896f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 897f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 898f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 899f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8> type; 900f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 901f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 902f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9> 903f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None, 904f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 905f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 906f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 907f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 908f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 909f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 910f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 911f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 912f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 913f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 914f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type; 915f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 916f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 917f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10> 918f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None, 919f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 920f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 921f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 922f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 923f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 924f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 925f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 926f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 927f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 928f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 929f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type; 930f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 931f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 932f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 933f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11> 934f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None, 935f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 936f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 937f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 938f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 939f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 940f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 941f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 942f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 943f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 944f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 945f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type; 946f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 947f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 948f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 949f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12> 950f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None, 951f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 952f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 953f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 954f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 955f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 956f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 957f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 958f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 959f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 960f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 961f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 962f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T12> type; 963f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 964f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 965f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 966f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13> 967f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 968f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 969f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 970f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 971f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 972f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 973f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 974f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 975f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 976f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 977f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 978f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 979f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13> type; 980f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 981f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 982f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 983f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14> 984f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 985f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 986f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 987f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 988f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 989f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 990f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 991f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 992f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 993f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 994f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 995f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14> type; 996f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 997f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 998f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 999f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15> 1000f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1001f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1002f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1003f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1004f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1005f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1006f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1007f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1008f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1009f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1010f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1011f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15> type; 1012f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1013f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1014f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1015f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1016f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16> 1017f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1018f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, internal::None, internal::None, internal::None, internal::None, 1019f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1020f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1021f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1022f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1023f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1024f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1025f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1026f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1027f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1028f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16> type; 1029f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1030f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1031f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1032f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1033f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17> 1034f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1035f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, internal::None, internal::None, internal::None, internal::None, 1036f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1037f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1038f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1039f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1040f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1041f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1042f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1043f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1044f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1045f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17> type; 1046f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1047f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1048f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1049f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1050f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18> 1051f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1052f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, internal::None, internal::None, internal::None, 1053f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1054f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1055f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1056f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1057f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1058f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1059f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1060f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1061f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1062f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18> type; 1063f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1064f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1065f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1066f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1067f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19> 1068f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1069f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, internal::None, internal::None, internal::None, 1070f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1071f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1072f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1073f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1074f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1075f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1076f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 1077f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1078f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19> type; 1079f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1080f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1081f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1082f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1083f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20> 1084f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1085f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, internal::None, internal::None, internal::None, 1086f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1087f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1088f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1089f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1090f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1091f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1092f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1093f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1094f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20> type; 1095f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1096f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1097f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1098f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1099f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21> 1101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, internal::None, internal::None, 1103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21> type; 1112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22> 1118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None, 1120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type; 1129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23> 1135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None, 1137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type; 1146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24> 1152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None, 1154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type; 1163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25> 1169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None, 1171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 1177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type; 1179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26> 1186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None, 1188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, 1196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T26> type; 1197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27> 1204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None, 1206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27> type; 1215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28> 1222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 1224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28> type; 1233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29> 1240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 1242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29> type; 1251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30> 1258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 1265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30> type; 1268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31> 1276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, internal::None, internal::None, internal::None, internal::None, 1279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31> type; 1286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32> 1294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, internal::None, internal::None, internal::None, internal::None, 1297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32> type; 1304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1308f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1309f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1310f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1311f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33> 1312f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1313f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1314f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, internal::None, internal::None, internal::None, 1315f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1316f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1317f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1318f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1319f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1320f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1321f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33> type; 1322f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1323f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1324f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1325f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1326f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1327f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1328f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1329f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34> 1330f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1331f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1332f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, internal::None, internal::None, internal::None, 1333f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1334f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1335f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1336f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1337f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1338f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1339f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34> type; 1340f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1341f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1342f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1343f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1344f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1345f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1346f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1347f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35> 1348f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1349f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1350f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, internal::None, internal::None, internal::None, 1351f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1352f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1353f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 1354f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1355f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1356f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35> type; 1357f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1358f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1359f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1360f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1361f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1362f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1363f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1364f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1365f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36> 1366f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1367f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1368f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, internal::None, internal::None, 1369f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1370f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1371f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 1372f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1373f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1374f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> type; 1375f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1376f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1377f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1378f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1379f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1380f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1381f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1382f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1383f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37> 1384f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1385f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1386f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, internal::None, internal::None, 1387f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1388f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1389f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1390f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1391f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1392f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type; 1393f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1394f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1395f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1396f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1397f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1398f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1399f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1400f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1401f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38> 1402f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1403f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1404f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, internal::None, internal::None, 1405f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1406f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1407f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1408f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1409f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1410f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type; 1411f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1412f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1413f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1414f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1415f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1416f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1417f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1418f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1419f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39> 1420f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1421f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1422f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None, 1423f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1424f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1425f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1426f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1427f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1428f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type; 1429f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1430f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1431f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1432f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1433f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1434f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1435f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1436f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1437f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40> 1438f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1439f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1440f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None, 1441f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1442f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1443f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1444f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1445f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1446f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, 1447f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T40> type; 1448f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1449f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1450f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1451f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1452f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1453f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1454f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1455f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1456f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1457f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41> 1458f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1459f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1460f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None, 1461f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1462f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None> { 1463f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1464f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1465f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1466f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41> type; 1467f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1468f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1469f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1470f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1471f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1472f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1473f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1474f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1475f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1476f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42> 1477f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1478f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1479f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None, 1480f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1481f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1482f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1483f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1484f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1485f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42> type; 1486f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1487f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1488f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1489f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1490f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1491f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1492f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1493f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1494f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1495f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43> 1496f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1497f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1498f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 1499f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1500f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None> { 1501f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1502f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1503f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1504f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43> type; 1505f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1506f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1507f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1508f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1509f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1510f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1511f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1512f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1513f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1514f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44> 1515f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1516f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1517f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, 1518f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1519f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None> { 1520f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1521f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1522f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1523f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44> type; 1524f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1525f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1526f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1527f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1528f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1529f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1530f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1531f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1532f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1533f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45> 1534f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1535f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1536f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, 1537f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None, internal::None, internal::None, internal::None, 1538f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org internal::None> { 1539f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1540f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1541f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1542f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44, T45> type; 1543f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1544f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1545f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1546f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1547f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1548f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1549f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1550f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1551f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1552f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 1553f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46> 1554f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1555f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1556f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, 1557f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T46, internal::None, internal::None, internal::None, internal::None> { 1558f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1559f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1560f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1561f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44, T45, T46> type; 1562f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1563f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1564f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1565f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1566f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1567f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1568f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1569f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1570f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1571f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 1572f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47> 1573f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1574f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1575f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, 1576f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T46, T47, internal::None, internal::None, internal::None> { 1577f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1578f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1579f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1580f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44, T45, T46, T47> type; 1581f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1582f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1583f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1584f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1585f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1586f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1587f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1588f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1589f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1590f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 1591f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47, typename T48> 1592f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1593f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1594f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, 1595f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T46, T47, T48, internal::None, internal::None> { 1596f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1597f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1598f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1599f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44, T45, T46, T47, T48> type; 1600f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1601f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 1602f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 1603f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 1604f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 1605f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 1606f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 1607f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 1608f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 1609f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 1610f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47, typename T48, typename T49> 1611f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, 1612f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, 1613f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, 1614f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T46, T47, T48, T49, internal::None> { 1615f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 1616f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 1617f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 1618f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44, T45, T46, T47, T48, T49> type; 1619f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1620f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1621f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnamespace internal { 1622f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1623f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# define GTEST_TEMPLATE_ template <typename T> class 1624f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1625f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// The template "selector" struct TemplateSel<Tmpl> is used to 1626f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// represent Tmpl, which must be a class template with one type 1627f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// parameter, as a type. TemplateSel<Tmpl>::Bind<T>::type is defined 1628f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// as the type Tmpl<T>. This allows us to actually instantiate the 1629f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// template "selected" by TemplateSel<Tmpl>. 1630f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 1631f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// This trick is necessary for simulating typedef for class templates, 1632f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// which C++ doesn't support directly. 1633f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ Tmpl> 1634f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct TemplateSel { 1635f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org template <typename T> 1636f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct Bind { 1637f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Tmpl<T> type; 1638f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org }; 1639f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1640f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1641f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# define GTEST_BIND_(TmplSel, T) \ 1642f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TmplSel::template Bind<T>::type 1643f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1644f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// A unique struct template used as the default value for the 1645f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// arguments of class template Templates. This allows us to simulate 1646f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// variadic templates (e.g. Templates<int>, Templates<int, double>, 1647f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// and etc), which C++ doesn't support directly. 1648f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T> 1649f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct NoneT {}; 1650f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1651f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// The following family of struct and struct templates are used to 1652f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// represent template lists. In particular, TemplatesN<T1, T2, ..., 1653f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// TN> represents a list of N templates (T1, T2, ..., and TN). Except 1654f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// for Templates0, every struct in the family has two member types: 1655f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Head for the selector of the first template in the list, and Tail 1656f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// for the rest of the list. 1657f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1658f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// The empty template list. 1659f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates0 {}; 1660f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1661f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Template lists of length 1, 2, 3, and so on. 1662f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1663f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1> 1664f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates1 { 1665f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1666f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates0 Tail; 1667f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1668f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2> 1669f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates2 { 1670f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1671f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates1<T2> Tail; 1672f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1673f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1674f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3> 1675f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates3 { 1676f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1677f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates2<T2, T3> Tail; 1678f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1679f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1680f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1681f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4> 1682f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates4 { 1683f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1684f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates3<T2, T3, T4> Tail; 1685f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1686f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1687f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1688f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5> 1689f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates5 { 1690f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1691f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates4<T2, T3, T4, T5> Tail; 1692f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1693f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1694f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1695f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6> 1696f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates6 { 1697f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1698f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates5<T2, T3, T4, T5, T6> Tail; 1699f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1700f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1701f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1702f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1703f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7> 1704f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates7 { 1705f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1706f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates6<T2, T3, T4, T5, T6, T7> Tail; 1707f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1708f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1709f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1710f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1711f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8> 1712f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates8 { 1713f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1714f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail; 1715f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1716f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1717f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1718f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1719f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9> 1720f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates9 { 1721f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1722f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail; 1723f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1724f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1725f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1726f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1727f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1728f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10> 1729f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates10 { 1730f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1731f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail; 1732f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1733f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1734f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1735f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1736f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1737f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11> 1738f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates11 { 1739f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1740f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail; 1741f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1742f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1743f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1744f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1745f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1746f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12> 1747f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates12 { 1748f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1749f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail; 1750f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1751f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1752f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1753f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1754f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1755f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1756f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13> 1757f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates13 { 1758f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1759f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail; 1760f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1761f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1762f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1763f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1764f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1765f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1766f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14> 1767f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates14 { 1768f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1769f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 1770f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14> Tail; 1771f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1772f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1773f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1774f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1775f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1776f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1777f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15> 1778f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates15 { 1779f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1780f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1781f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15> Tail; 1782f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1783f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1784f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1785f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1786f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1787f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1788f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1789f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16> 1790f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates16 { 1791f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1792f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1793f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16> Tail; 1794f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1795f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1796f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1797f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1798f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1799f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1800f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1801f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17> 1802f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates17 { 1803f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1804f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1805f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17> Tail; 1806f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1807f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1808f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1809f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1810f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1811f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1812f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1813f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18> 1814f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates18 { 1815f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1816f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1817f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18> Tail; 1818f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1819f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1820f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1821f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1822f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1823f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1824f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1825f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1826f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19> 1827f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates19 { 1828f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1829f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1830f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19> Tail; 1831f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1832f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1833f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1834f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1835f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1836f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1837f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1838f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1839f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20> 1840f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates20 { 1841f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1842f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1843f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20> Tail; 1844f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1845f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1846f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1847f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1848f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1849f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1850f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1851f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1852f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21> 1853f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates21 { 1854f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1855f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1856f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21> Tail; 1857f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1858f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1859f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1860f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1861f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1862f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1863f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1864f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1865f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1866f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22> 1867f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates22 { 1868f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1869f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1870f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22> Tail; 1871f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1872f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1873f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1874f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1875f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1876f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1877f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1878f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1879f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1880f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23> 1881f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates23 { 1882f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1883f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1884f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail; 1885f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1886f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1887f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1888f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1889f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1890f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1891f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1892f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1893f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1894f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24> 1895f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates24 { 1896f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1897f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1898f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail; 1899f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1900f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1901f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1902f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1903f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1904f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1905f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1906f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1907f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1908f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 1909f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25> 1910f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates25 { 1911f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1912f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1913f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail; 1914f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1915f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1916f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1917f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1918f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1919f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1920f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1921f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1922f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1923f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 1924f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26> 1925f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates26 { 1926f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1927f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1928f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail; 1929f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1930f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1931f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1932f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1933f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1934f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1935f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1936f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1937f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1938f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 1939f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27> 1940f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates27 { 1941f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1942f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1943f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail; 1944f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1945f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1946f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1947f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1948f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1949f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1950f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1951f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1952f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1953f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 1954f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 1955f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28> 1956f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates28 { 1957f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1958f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1959f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 1960f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28> Tail; 1961f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1962f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1963f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1964f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1965f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1966f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1967f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1968f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1969f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1970f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 1971f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 1972f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29> 1973f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates29 { 1974f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1975f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1976f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 1977f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29> Tail; 1978f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1979f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1980f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1981f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1982f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 1983f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 1984f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 1985f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 1986f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 1987f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 1988f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 1989f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30> 1990f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates30 { 1991f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 1992f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1993f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 1994f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30> Tail; 1995f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 1996f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1997f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 1998f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 1999f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2000f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2001f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2002f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2003f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2004f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2005f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2006f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2007f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31> 2008f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates31 { 2009f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2010f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2011f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2012f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31> Tail; 2013f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2014f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2015f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2016f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2017f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2018f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2019f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2020f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2021f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2022f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2023f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2024f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2025f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32> 2026f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates32 { 2027f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2028f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2029f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2030f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32> Tail; 2031f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2032f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2033f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2034f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2035f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2036f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2037f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2038f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2039f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2040f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2041f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2042f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2043f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33> 2044f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates33 { 2045f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2046f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2047f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2048f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33> Tail; 2049f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2050f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2051f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2052f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2053f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2054f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2055f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2056f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2057f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2058f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2059f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2060f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2061f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2062f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34> 2063f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates34 { 2064f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2065f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2066f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2067f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34> Tail; 2068f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2069f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2070f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2071f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2072f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2073f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2074f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2075f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2076f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2077f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2078f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2079f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2080f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2081f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35> 2082f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates35 { 2083f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2084f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2085f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2086f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35> Tail; 2087f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2088f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2089f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2090f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2091f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2092f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2093f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2094f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2095f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2096f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2097f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2098f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2099f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36> 2101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates36 { 2102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36> Tail; 2106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37> 2121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates37 { 2122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail; 2126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38> 2141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates38 { 2142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail; 2146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39> 2161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates39 { 2162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail; 2166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40> 2182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates40 { 2183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail; 2187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41> 2203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates41 { 2204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail; 2208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42> 2224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates42 { 2225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 2229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42> Tail; 2230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43> 2247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates43 { 2248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43> Tail; 2253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44> 2270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates44 { 2271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43, T44> Tail; 2276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45> 2293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates45 { 2294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43, T44, T45> Tail; 2299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2308f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2309f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2310f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2311f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2312f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2313f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2314f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2315f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 2316f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46> 2317f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates46 { 2318f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2319f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2320f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2321f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2322f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43, T44, T45, T46> Tail; 2323f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2324f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2325f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2326f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2327f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2328f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2329f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2330f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2331f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2332f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2333f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2334f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2335f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2336f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2337f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2338f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2339f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 2340f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47> 2341f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates47 { 2342f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2343f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2344f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2345f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2346f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43, T44, T45, T46, T47> Tail; 2347f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2348f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2349f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2350f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2351f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2352f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2353f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2354f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2355f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2356f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2357f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2358f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2359f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2360f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2361f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2362f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2363f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 2364f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48> 2365f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates48 { 2366f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2367f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2368f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2369f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2370f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43, T44, T45, T46, T47, T48> Tail; 2371f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2372f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2373f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2374f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2375f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2376f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2377f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2378f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2379f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2380f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2381f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2382f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2383f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2384f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2385f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2386f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2387f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 2388f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48, 2389f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T49> 2390f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates49 { 2391f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2392f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2393f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2394f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2395f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43, T44, T45, T46, T47, T48, T49> Tail; 2396f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2397f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2398f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2399f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2400f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2401f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2402f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2403f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2404f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2405f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2406f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2407f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2408f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2409f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 2410f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 2411f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 2412f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 2413f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48, 2414f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50> 2415f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates50 { 2416f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef TemplateSel<T1> Head; 2417f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2418f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2419f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, 2420f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T43, T44, T45, T46, T47, T48, T49, T50> Tail; 2421f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2422f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2423f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2424f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// We don't want to require the users to write TemplatesN<...> directly, 2425f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// as that would require them to count the length. Templates<...> is much 2426f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// easier to write, but generates horrible messages when there is a 2427f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// compiler error, as gcc insists on printing out each template 2428f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// argument, even if it has the default value (this means Templates<list> 2429f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// will appear as Templates<list, NoneT, NoneT, ..., NoneT> in the compiler 2430f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// errors). 2431f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// 2432f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Our solution is to combine the best part of the two approaches: a 2433f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// user would write Templates<T1, ..., TN>, and Google Test will translate 2434f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// that to TemplatesN<T1, ..., TN> internally to make error messages 2435f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// readable. The translation is done by the 'type' member of the 2436f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// Templates template. 2437f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT, 2438f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT, 2439f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT, 2440f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT, 2441f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT, 2442f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT, 2443f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT, 2444f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT, 2445f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT, 2446f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT, 2447f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT, 2448f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT, 2449f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT, 2450f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT, 2451f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT, 2452f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT, 2453f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT, 2454f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT, 2455f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT, 2456f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT, 2457f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT, 2458f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT, 2459f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT, 2460f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT, 2461f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT> 2462f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates { 2463f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2464f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2465f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 2466f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43, T44, T45, T46, T47, T48, T49, T50> type; 2467f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2468f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2469f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <> 2470f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2471f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2472f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2473f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2474f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2475f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT> { 2476f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates0 type; 2477f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2478f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1> 2479f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2480f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2481f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2482f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2483f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2484f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT> { 2485f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates1<T1> type; 2486f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2487f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2> 2488f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2489f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2490f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2491f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2492f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2493f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT> { 2494f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates2<T1, T2> type; 2495f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2496f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3> 2497f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2498f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2499f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2500f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2501f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2502f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates3<T1, T2, T3> type; 2503f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2504f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2505f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4> 2506f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2507f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2508f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2509f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2510f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2511f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates4<T1, T2, T3, T4> type; 2512f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2513f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2514f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5> 2515f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2516f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2517f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2518f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2519f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2520f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates5<T1, T2, T3, T4, T5> type; 2521f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2522f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2523f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6> 2524f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT, 2525f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2526f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2527f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2528f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2529f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates6<T1, T2, T3, T4, T5, T6> type; 2530f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2531f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2532f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2533f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7> 2534f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT, 2535f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2536f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2537f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2538f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2539f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates7<T1, T2, T3, T4, T5, T6, T7> type; 2540f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2541f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2542f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2543f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8> 2544f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT, 2545f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2546f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2547f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2548f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2549f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8> type; 2550f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2551f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2552f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2553f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9> 2554f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT, 2555f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2556f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2557f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2558f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2559f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type; 2560f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2561f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2562f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2563f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2564f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10> 2565f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT, 2566f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2567f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2568f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2569f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2570f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type; 2571f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2572f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2573f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2574f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2575f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11> 2576f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT, 2577f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2578f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2579f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2580f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2581f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type; 2582f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2583f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2584f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2585f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2586f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12> 2587f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT, 2588f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2589f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2590f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2591f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2592f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type; 2593f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2594f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2595f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2596f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2597f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2598f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13> 2599f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT, 2600f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2601f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2602f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2603f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2604f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 2605f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13> type; 2606f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2607f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2608f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2609f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2610f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2611f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14> 2612f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2613f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2614f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2615f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2616f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2617f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2618f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14> type; 2619f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2620f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2621f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2622f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2623f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2624f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15> 2625f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2626f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2627f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2628f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2629f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT> { 2630f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2631f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15> type; 2632f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2633f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2634f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2635f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2636f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2637f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2638f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16> 2639f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2640f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2641f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2642f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2643f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT> { 2644f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2645f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16> type; 2646f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2647f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2648f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2649f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2650f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2651f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2652f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17> 2653f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2654f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2655f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2656f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2657f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT> { 2658f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2659f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17> type; 2660f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2661f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2662f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2663f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2664f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2665f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2666f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18> 2667f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2668f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2669f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2670f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2671f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT> { 2672f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2673f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18> type; 2674f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2675f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2676f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2677f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2678f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2679f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2680f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2681f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19> 2682f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2683f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2684f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2685f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2686f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT> { 2687f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2688f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19> type; 2689f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2690f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2691f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2692f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2693f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2694f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2695f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2696f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20> 2697f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2698f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2699f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2700f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2701f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT> { 2702f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2703f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20> type; 2704f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2705f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2706f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2707f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2708f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2709f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2710f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2711f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21> 2712f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2713f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT, 2714f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2715f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2716f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT> { 2717f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2718f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21> type; 2719f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2720f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2721f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2722f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2723f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2724f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2725f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2726f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2727f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22> 2728f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2729f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT, 2730f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2731f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2732f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT> { 2733f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2734f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22> type; 2735f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2736f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2737f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2738f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2739f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2740f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2741f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2742f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2743f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23> 2744f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2745f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT, 2746f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2747f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2748f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT> { 2749f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2750f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type; 2751f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2752f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2753f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2754f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2755f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2756f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2757f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2758f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2759f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24> 2760f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2761f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT, 2762f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2763f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2764f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT> { 2765f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2766f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type; 2767f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2768f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2769f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2770f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2771f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2772f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2773f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2774f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2775f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2776f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25> 2777f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2778f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, NoneT, NoneT, NoneT, 2779f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2780f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2781f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT> { 2782f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2783f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type; 2784f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2785f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2786f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2787f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2788f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2789f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2790f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2791f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2792f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2793f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26> 2794f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2795f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT, 2796f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2797f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2798f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT> { 2799f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2800f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> type; 2801f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2802f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2803f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2804f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2805f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2806f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2807f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2808f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2809f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2810f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27> 2811f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2812f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT, 2813f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2814f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2815f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT> { 2816f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2817f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 2818f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27> type; 2819f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2820f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2821f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2822f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2823f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2824f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2825f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2826f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2827f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2828f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2829f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28> 2830f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2831f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 2832f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2833f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2834f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT> { 2835f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2836f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2837f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28> type; 2838f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2839f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2840f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2841f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2842f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2843f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2844f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2845f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2846f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2847f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2848f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29> 2849f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2850f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2851f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2852f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2853f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT> { 2854f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2855f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2856f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29> type; 2857f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2858f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2859f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2860f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2861f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2862f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2863f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2864f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2865f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2866f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2867f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30> 2868f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2869f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2870f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2871f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2872f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2873f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2874f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30> type; 2875f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2876f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2877f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2878f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2879f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2880f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2881f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2882f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2883f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2884f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2885f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2886f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31> 2887f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2888f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2889f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2890f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2891f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2892f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2893f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31> type; 2894f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2895f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2896f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2897f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2898f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2899f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2900f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2901f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2902f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2903f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2904f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2905f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32> 2906f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2907f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2908f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2909f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2910f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2911f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2912f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32> type; 2913f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2914f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2915f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2916f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2917f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2918f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2919f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2920f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2921f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2922f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2923f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2924f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33> 2925f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2926f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2927f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2928f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2929f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2930f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2931f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33> type; 2932f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2933f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2934f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2935f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2936f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2937f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2938f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2939f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2940f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2941f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2942f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2943f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2944f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34> 2945f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2946f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2947f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2948f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2949f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2950f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2951f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34> type; 2952f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2953f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2954f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2955f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2956f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2957f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2958f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2959f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2960f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2961f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2962f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2963f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2964f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35> 2965f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2966f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2967f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, 2968f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2969f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2970f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2971f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35> type; 2972f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2973f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2974f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2975f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2976f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2977f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2978f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2979f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 2980f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 2981f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 2982f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 2983f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 2984f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36> 2985f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 2986f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 2987f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT, 2988f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 2989f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 2990f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 2991f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36> type; 2992f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 2993f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 2994f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 2995f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 2996f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 2997f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 2998f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 2999f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3000f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3001f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3002f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3003f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3004f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3005f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37> 3006f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3007f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3008f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT, 3009f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3010f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3011f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3012f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type; 3013f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3014f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3015f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3016f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3017f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3018f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3019f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3020f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3021f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3022f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3023f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3024f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3025f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3026f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38> 3027f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3028f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3029f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT, 3030f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3031f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3032f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3033f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type; 3034f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3035f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3036f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3037f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3038f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3039f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3040f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3041f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3042f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3043f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3044f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3045f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3046f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3047f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39> 3048f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3049f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3050f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT, 3051f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3052f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3053f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3054f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type; 3055f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3056f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3057f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3058f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3059f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3060f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3061f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3062f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3063f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3064f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3065f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3066f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3067f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3068f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3069f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40> 3070f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3071f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3072f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT, 3073f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3074f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3075f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3076f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> type; 3077f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3078f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3079f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3080f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3081f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3082f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3083f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3084f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3085f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3086f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3087f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3088f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3089f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3090f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3091f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41> 3092f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3093f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3094f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT, 3095f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3096f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3097f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3098f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 3099f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41> type; 3100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42> 3115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT, 3118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42> type; 3123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 3138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43> 3139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 3142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43> type; 3147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 3162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44> 3163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, 3166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> { 3167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43, T44> type; 3171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 3186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45> 3187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, 3190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T45, NoneT, NoneT, NoneT, NoneT, NoneT> { 3191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43, T44, T45> type; 3195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 3210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 3211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46> 3212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, 3215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T45, T46, NoneT, NoneT, NoneT, NoneT> { 3216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43, T44, T45, T46> type; 3220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 3235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 3236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47> 3237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, 3240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T45, T46, T47, NoneT, NoneT, NoneT> { 3241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43, T44, T45, T46, T47> type; 3245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 3260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 3261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48> 3262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, 3265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T45, T46, T47, T48, NoneT, NoneT> { 3266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43, T44, T45, T46, T47, T48> type; 3270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3, 3272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6, 3273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9, 3274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12, 3275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15, 3276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18, 3277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21, 3278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24, 3279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27, 3280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30, 3281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33, 3282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36, 3283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39, 3284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42, 3285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45, 3286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48, 3287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GTEST_TEMPLATE_ T49> 3288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 3289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, 3290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, 3291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T45, T46, T47, T48, T49, NoneT> { 3292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, 3294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, 3295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T42, T43, T44, T45, T46, T47, T48, T49> type; 3296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// The TypeList template makes it possible to use either a single type 3299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// or a Types<...> list in TYPED_TEST_CASE() and 3300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org// INSTANTIATE_TYPED_TEST_CASE_P(). 3301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T> 3303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct TypeList { typedef Types1<T> type; }; 3304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtemplate <typename T1, typename T2, typename T3, typename T4, typename T5, 3306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T6, typename T7, typename T8, typename T9, typename T10, 3307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T11, typename T12, typename T13, typename T14, typename T15, 3308f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T16, typename T17, typename T18, typename T19, typename T20, 3309f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T21, typename T22, typename T23, typename T24, typename T25, 3310f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T26, typename T27, typename T28, typename T29, typename T30, 3311f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T31, typename T32, typename T33, typename T34, typename T35, 3312f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T36, typename T37, typename T38, typename T39, typename T40, 3313f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T41, typename T42, typename T43, typename T44, typename T45, 3314f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typename T46, typename T47, typename T48, typename T49, typename T50> 3315f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, 3316f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, 3317f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, 3318f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T44, T45, T46, T47, T48, T49, T50> > { 3319f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 3320f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, 3321f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, 3322f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>::type type; 3323f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 3324f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3325f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P 3326f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3327f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} // namespace internal 3328f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} // namespace testing 3329f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3330f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ 3331