Created
June 28, 2022 13:18
-
-
Save r4ve1/d4a5968592c920782ea32ead0700f6ef to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <type_traits> | |
struct IntT | |
{ | |
typedef int type; | |
}; | |
struct FloatT | |
{ | |
typedef float type; | |
}; | |
template <bool B, typename T, typename U> | |
struct Ternary | |
{ | |
typedef U type; | |
}; | |
template <typename T, typename U> | |
struct Ternary<true, T, U> | |
{ | |
typedef T type; | |
}; | |
template <int N> | |
struct IntW | |
{ | |
static constexpr int value = N; | |
}; | |
template <bool B> | |
struct BoolW | |
{ | |
static constexpr bool value = B; | |
}; | |
typedef BoolW<false> FalseW; | |
typedef BoolW<true> TrueW; | |
template <typename T> | |
struct Not : BoolW<!bool(T::value)> | |
{ | |
}; | |
template <typename...> | |
struct And : TrueW | |
{ | |
}; | |
template <typename T> | |
struct And<T> : T | |
{ | |
}; | |
template <typename T, typename... U> | |
struct And<T, U...> : Ternary<bool(T::value), And<U...>, T>::type | |
{ | |
}; | |
template <typename T, typename... U> | |
struct Xor : Ternary<bool(T::value), Not<Xor<U...>>, Xor<U...>>::type | |
{ | |
}; | |
template <typename T> | |
struct Xor<T> : T | |
{ | |
}; | |
template <bool B, typename = void> | |
struct IsTrue { | |
}; | |
template <typename T> | |
struct IsTrue<true, T> { | |
typedef T type; | |
}; | |
template<typename T, typename U> | |
struct IsSame :FalseW { | |
}; | |
template<typename T> | |
struct IsSame<T, T> :TrueW { | |
}; | |
template <typename T> | |
struct RmRef | |
{ | |
typedef typename std::remove_reference<T>::type type; | |
}; | |
template <typename T> | |
struct AddRef | |
{ | |
typedef typename std::add_lvalue_reference<T>::type type; | |
}; | |
template <typename T, typename = void> | |
struct IsRef : FalseW | |
{ | |
}; | |
template <typename T> | |
struct IsRef<T, typename IsTrue<std::is_reference<T>::value>::type> : TrueW | |
{ | |
}; | |
template <typename T, typename = void> | |
struct RmConst | |
{ | |
typedef typename std::remove_const<T>::type type; | |
}; | |
template <typename T> | |
struct RmConst<T, typename IsTrue<IsRef<T>::value>::type> | |
{ | |
typedef typename AddRef<typename std::remove_const<typename RmRef<T>::type>::type>::type type; | |
}; | |
template <typename T, typename = void> | |
struct AddConst | |
{ | |
typedef typename std::add_const<T>::type type; | |
}; | |
template <typename T> | |
struct AddConst<T, typename IsTrue<IsRef<T>::value>::type> | |
{ | |
typedef typename AddRef<typename std::add_const<typename RmRef<T>::type>::type>::type type; | |
}; | |
template <typename T, typename = void> | |
struct IsConst : FalseW | |
{ | |
}; | |
template <typename T> | |
struct IsConst<T, typename IsTrue<std::is_const<typename RmRef<T>::type>::value>::type> | |
: TrueW | |
{ | |
}; | |
// | |
//template <typename T, typename = void> | |
//struct RZ | |
//{ | |
// typedef IntT::type type; | |
//}; | |
// | |
//template <typename T> | |
//struct RZ<T, | |
// typename IsTrue<And<IsConst<T>, Not<IsRef<T>>>::value>::type> | |
//{ | |
// typedef typename AddConst<IntT::type>::type type; | |
//}; | |
// | |
//template <typename T> | |
//struct RZ<T, | |
// typename IsTrue<And<Not<IsConst<T>>, IsRef<T>>::value>::type> | |
//{ | |
// typedef typename AddRef<IntT::type>::type type; | |
//}; | |
// | |
//template <typename T> | |
//struct RZ<T, | |
// typename IsTrue<And<IsConst<T>, IsRef<T>>::value>::type> | |
//{ | |
// typedef typename AddRef<typename AddConst<IntT::type>::type>::type type; | |
//}; | |
// | |
//template <typename T, typename = void> | |
//struct EK | |
//{ | |
// typedef FloatT::type type; | |
//}; | |
// | |
//template <typename T> | |
//struct EK<T, | |
// typename IsTrue<And<IsConst<T>, Not<IsRef<T>>>::value>::type> | |
//{ | |
// typedef typename AddConst<FloatT::type>::type type; | |
//}; | |
// | |
//template <typename T> | |
//struct EK<T, | |
// typename IsTrue<And<Not<IsConst<T>>, IsRef<T>>::value>::type> | |
//{ | |
// typedef typename AddRef<FloatT::type>::type type; | |
//}; | |
// | |
//template <typename T> | |
//struct EK<T, | |
// typename IsTrue<And<IsConst<T>, IsRef<T>>::value>::type> | |
//{ | |
// typedef typename AddRef<typename AddConst<FloatT::type>::type>::type type; | |
//}; | |
template <typename T, typename = void> | |
struct IsFloat : FalseW | |
{ | |
}; | |
template <typename T> | |
struct IsFloat<T, typename IsTrue<IsSame<typename RmConst<typename RmRef<T>::type>::type, FloatT::type>::value>::type> : TrueW | |
{ | |
}; | |
template <typename T, typename U, typename = void> | |
struct FloatXor | |
{ | |
typedef FloatT::type type; | |
}; | |
template <typename T, typename U> | |
struct FloatXor<T, U, typename IsTrue<Not<Xor<IsFloat<T>, IsFloat<U>>>::value>::type> | |
{ | |
typedef IntT::type type; | |
}; | |
template <typename T, typename U, typename = void> | |
struct ConstFloatXor | |
{ | |
typedef typename AddConst<typename FloatXor<T, U>::type>::type type; | |
}; | |
template <typename T, typename U> | |
struct ConstFloatXor<T, U, typename IsTrue<Not<Xor<IsConst<T>, IsConst<U>>>::value>::type> | |
{ | |
typedef typename RmConst<typename FloatXor<T, U>::type>::type type; | |
}; | |
template <typename T, typename U, typename = void> | |
struct RefConstFloatXor | |
{ | |
typedef typename AddRef<typename ConstFloatXor<T, U>::type>::type type; | |
}; | |
template <typename T, typename U> | |
struct RefConstFloatXor<T, U, typename IsTrue<Not<Xor<IsRef<T>, IsRef<U>>>::value>::type> | |
{ | |
typedef typename RmRef<typename ConstFloatXor<T, U>::type>::type type; | |
}; | |
template <typename T, typename... U> | |
struct Add | |
{ | |
typedef typename RefConstFloatXor<T, typename Add<U...>::type>::type type; | |
}; | |
template <typename T> | |
struct Add<T> | |
{ | |
typedef T type; | |
}; | |
template<typename T> | |
struct FloatIfRef { | |
typedef typename Ternary<IsRef<T>::value, FloatT::type, IntT::type>::type type; | |
}; | |
template<typename T> | |
struct YQ { | |
typedef typename Ternary<IsFloat<T>::value, typename AddConst<typename FloatIfRef<T>::type>::type, typename FloatIfRef<T>::type>::type type; | |
}; | |
template <typename T> | |
struct ZT | |
{ | |
typedef typename Ternary<Xor<IsRef<T>, IsConst<T>>::value, typename AddRef<typename YQ<T>::type>::type, typename YQ<T>::type>::type type; | |
}; | |
template<typename T> | |
struct HY { | |
typedef typename Ternary<Xor<IsRef<T>, IsConst<T>>::value, FloatT::type, IntT::type>::type type; | |
}; | |
template<typename T> | |
struct PG { | |
typedef typename Ternary<IsRef<T>::value, typename AddConst<typename HY<T>::type>::type, typename HY<T>::type>::type type; | |
}; | |
template <typename T> | |
struct RX | |
{ | |
typedef typename Ternary<Xor<IsRef<T>, IsConst<T>, IsFloat<T>>::value, typename AddRef<typename PG<T>::type>::type, typename PG<T>::type>::type type; | |
}; | |
template <typename T, typename U, typename = void> | |
struct WP | |
{ | |
typedef IntT::type type; | |
}; | |
template <typename T, typename U> | |
struct WP<T, U, typename IsTrue<IsFloat<U>::value>::type> | |
{ | |
typedef T type; | |
}; | |
template <typename T, typename U, typename = void> | |
struct WX | |
{ | |
typedef typename WP<T, U>::type type; | |
}; | |
template <typename T, typename U> | |
struct WX<T, U, typename IsTrue<IsConst<U>::value>::type> | |
{ | |
typedef typename Add<typename ZT<T>::type, typename WP<T, U>::type>::type type; | |
}; | |
template <typename T, typename U, typename = void> | |
struct GR | |
{ | |
typedef typename WX<T, U>::type type; | |
}; | |
template <typename T, typename U> | |
struct GR<T, U, typename IsTrue<IsRef<U>::value>::type> | |
{ | |
typedef typename Add<typename RX<T>::type, typename WX<T, U>::type>::type type; | |
}; | |
template <typename T, typename... U> | |
struct HN | |
{ | |
typedef typename GR<T, typename HN<U...>::type>::type type; | |
}; | |
template <typename T> | |
struct HN<T> | |
{ | |
typedef T type; | |
}; | |
template<typename T> | |
struct Op0 { | |
typedef typename HN<IntT::type, T>::type type; | |
}; | |
template<typename T> | |
struct Op1 { | |
typedef typename HN<FloatT::type, T>::type type; | |
}; | |
template<typename T> | |
struct Op2 { | |
typedef typename HN<AddConst<IntT::type>::type, T>::type type; | |
}; | |
template<typename T> | |
struct Op3 { | |
typedef typename HN<AddConst<FloatT::type>::type, T>::type type; | |
}; | |
template<typename T> | |
struct Op4 { | |
typedef typename HN<AddConst<IntT::type>::type, T, AddConst<IntT::type>::type>::type type; | |
}; | |
template<typename T> | |
struct Op5 { | |
typedef typename HN<AddConst<FloatT::type>::type, AddConst<FloatT::type>::type, T>::type type; | |
}; | |
template<typename T> | |
struct Op6 { | |
typedef typename HN<AddConst<IntT::type>::type, T, AddConst<FloatT::type>::type>::type type; | |
}; | |
template<typename T> | |
struct Op7 { | |
typedef typename HN<AddConst<IntT::type>::type, T, AddConst<IntT::type>::type, AddConst<IntT::type>::type, AddConst<IntT::type>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct IQ { | |
typedef typename Add<typename Op4<U>::type, typename Op6<V>::type, IntT::type, typename Op7<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct BX { | |
typedef typename Add<typename Op0<U>::type, typename Op0<V>::type, IntT::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct AX { | |
typedef typename Add<typename Op6<U>::type, typename Op2<V>::type, IntT::type, typename Op5<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct UW { | |
typedef typename Add<typename Op3<U>::type, typename Op7<V>::type, IntT::type, typename Op7<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct HC { | |
typedef typename Add<typename Op3<U>::type, typename Op1<V>::type, IntT::type, typename Op6<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct NN { | |
typedef typename Add<typename Op0<U>::type, typename Op0<V>::type, IntT::type, typename Op4<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct UC { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, IntT::type, typename Op1<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct OK { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, IntT::type, typename Op3<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct PY { | |
typedef typename Add<typename Op2<U>::type, typename Op1<V>::type, IntT::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct XF { | |
typedef typename Add<typename Op1<U>::type, typename Op2<V>::type, IntT::type, typename Op4<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct KC { | |
typedef typename Add<typename Op3<U>::type, typename Op2<V>::type, IntT::type, typename Op4<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct VM { | |
typedef typename Add<typename Op4<U>::type, typename Op1<V>::type, IntT::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct OW { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, IntT::type, typename Op0<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct XQ { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, IntT::type, typename Op5<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct MG { | |
typedef typename Add<typename Op3<U>::type, typename Op4<V>::type, IntT::type, typename Op7<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct SQ { | |
typedef typename Add<typename Op5<U>::type, typename Op7<V>::type, IntT::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct UZ { | |
typedef typename Add<typename Op1<U>::type, typename Op4<V>::type, IntT::type, typename Op0<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct JT { | |
typedef typename Add<typename Op1<U>::type, typename Op3<V>::type, IntT::type, typename Op4<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct ES { | |
typedef typename Add<typename Op2<U>::type, typename Op4<V>::type, IntT::type, typename Op3<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct GJ { | |
typedef typename Add<typename Op6<U>::type, typename Op0<V>::type, IntT::type, typename Op4<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct NJ { | |
typedef typename Add<typename Op4<U>::type, typename Op2<V>::type, IntT::type, typename Op0<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct KM { | |
typedef typename Add<typename Op1<U>::type, typename Op4<V>::type, IntT::type, typename Op0<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct YZ { | |
typedef typename Add<typename Op7<U>::type, typename Op7<V>::type, IntT::type, typename Op6<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct WA { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, IntT::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct CW { | |
typedef typename Add<typename Op5<U>::type, typename Op2<V>::type, IntT::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct OP { | |
typedef typename Add<typename Op6<U>::type, typename Op1<V>::type, IntT::type, typename Op5<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct SI { | |
typedef typename Add<typename Op0<U>::type, typename Op4<V>::type, IntT::type, typename Op5<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct WI { | |
typedef typename Add<typename Op0<U>::type, typename Op1<V>::type, IntT::type, typename Op1<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct FY { | |
typedef typename Add<typename Op4<U>::type, typename Op0<V>::type, IntT::type, typename Op7<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct XK { | |
typedef typename Add<typename Op7<U>::type, typename Op4<V>::type, IntT::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct EY { | |
typedef typename Add<typename Op0<U>::type, typename Op6<V>::type, IntT::type, typename Op3<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X> | |
struct XS { | |
typedef typename Add<typename Op2<U>::type, typename Op7<V>::type, IntT::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UX { | |
typedef typename Add<typename Op0<U>::type, typename Op1<V>::type, typename IQ<Y...>::type, typename Op3<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DY { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, typename BX<Y...>::type, typename Op6<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LJ { | |
typedef typename Add<typename Op0<U>::type, typename Op0<V>::type, typename AX<Y...>::type, typename Op1<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NB { | |
typedef typename Add<typename Op3<U>::type, typename Op1<V>::type, typename UW<Y...>::type, typename Op6<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ZQ { | |
typedef typename Add<typename Op2<U>::type, typename Op1<V>::type, typename HC<Y...>::type, typename Op2<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FZ { | |
typedef typename Add<typename Op6<U>::type, typename Op0<V>::type, typename NN<Y...>::type, typename Op7<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct SM { | |
typedef typename Add<typename Op4<U>::type, typename Op5<V>::type, typename UC<Y...>::type, typename Op2<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MC { | |
typedef typename Add<typename Op0<U>::type, typename Op6<V>::type, typename OK<Y...>::type, typename Op0<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BZ { | |
typedef typename Add<typename Op1<U>::type, typename Op4<V>::type, typename PY<Y...>::type, typename Op7<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LR { | |
typedef typename Add<typename Op3<U>::type, typename Op0<V>::type, typename XF<Y...>::type, typename Op3<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BQ { | |
typedef typename Add<typename Op0<U>::type, typename Op2<V>::type, typename KC<Y...>::type, typename Op5<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FO { | |
typedef typename Add<typename Op5<U>::type, typename Op5<V>::type, typename VM<Y...>::type, typename Op2<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HS { | |
typedef typename Add<typename Op7<U>::type, typename Op0<V>::type, typename OW<Y...>::type, typename Op7<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CT { | |
typedef typename Add<typename Op5<U>::type, typename Op2<V>::type, typename XQ<Y...>::type, typename Op6<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AK { | |
typedef typename Add<typename Op1<U>::type, typename Op2<V>::type, typename MG<Y...>::type, typename Op6<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OD { | |
typedef typename Add<typename Op7<U>::type, typename Op3<V>::type, typename SQ<Y...>::type, typename Op7<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KP { | |
typedef typename Add<typename Op3<U>::type, typename Op2<V>::type, typename UZ<Y...>::type, typename Op6<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ZH { | |
typedef typename Add<typename Op2<U>::type, typename Op3<V>::type, typename JT<Y...>::type, typename Op0<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct XJ { | |
typedef typename Add<typename Op5<U>::type, typename Op5<V>::type, typename ES<Y...>::type, typename Op4<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DP { | |
typedef typename Add<typename Op7<U>::type, typename Op7<V>::type, typename GJ<Y...>::type, typename Op1<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RP { | |
typedef typename Add<typename Op6<U>::type, typename Op6<V>::type, typename NJ<Y...>::type, typename Op6<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LY { | |
typedef typename Add<typename Op7<U>::type, typename Op7<V>::type, typename KM<Y...>::type, typename Op5<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UP { | |
typedef typename Add<typename Op4<U>::type, typename Op5<V>::type, typename YZ<Y...>::type, typename Op5<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QN { | |
typedef typename Add<typename Op4<U>::type, typename Op5<V>::type, typename WA<Y...>::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct SF { | |
typedef typename Add<typename Op0<U>::type, typename Op5<V>::type, typename CW<Y...>::type, typename Op3<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PM { | |
typedef typename Add<typename Op7<U>::type, typename Op3<V>::type, typename OP<Y...>::type, typename Op6<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CU { | |
typedef typename Add<typename Op0<U>::type, typename Op7<V>::type, typename SI<Y...>::type, typename Op5<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LM { | |
typedef typename Add<typename Op2<U>::type, typename Op5<V>::type, typename WI<Y...>::type, typename Op4<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DG { | |
typedef typename Add<typename Op1<U>::type, typename Op7<V>::type, typename FY<Y...>::type, typename Op1<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AP { | |
typedef typename Add<typename Op2<U>::type, typename Op1<V>::type, typename XK<Y...>::type, typename Op4<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PA { | |
typedef typename Add<typename Op6<U>::type, typename Op2<V>::type, typename EY<Y...>::type, typename Op6<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RR { | |
typedef typename Add<typename Op6<U>::type, typename Op3<V>::type, typename XS<Y...>::type, typename Op7<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WE { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, typename UX<Y...>::type, typename Op4<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GS { | |
typedef typename Add<typename Op5<U>::type, typename Op2<V>::type, typename DY<Y...>::type, typename Op7<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WO { | |
typedef typename Add<typename Op2<U>::type, typename Op3<V>::type, typename LJ<Y...>::type, typename Op6<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct VX { | |
typedef typename Add<typename Op4<U>::type, typename Op6<V>::type, typename NB<Y...>::type, typename Op6<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KJ { | |
typedef typename Add<typename Op2<U>::type, typename Op1<V>::type, typename ZQ<Y...>::type, typename Op7<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AH { | |
typedef typename Add<typename Op4<U>::type, typename Op6<V>::type, typename FZ<Y...>::type, typename Op1<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MV { | |
typedef typename Add<typename Op7<U>::type, typename Op2<V>::type, typename SM<Y...>::type, typename Op0<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct TF { | |
typedef typename Add<typename Op5<U>::type, typename Op3<V>::type, typename MC<Y...>::type, typename Op2<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ZX { | |
typedef typename Add<typename Op7<U>::type, typename Op1<V>::type, typename BZ<Y...>::type, typename Op5<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AU { | |
typedef typename Add<typename Op2<U>::type, typename Op5<V>::type, typename LR<Y...>::type, typename Op7<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YX { | |
typedef typename Add<typename Op6<U>::type, typename Op3<V>::type, typename BQ<Y...>::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KL { | |
typedef typename Add<typename Op5<U>::type, typename Op7<V>::type, typename FO<Y...>::type, typename Op5<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LI { | |
typedef typename Add<typename Op0<U>::type, typename Op7<V>::type, typename HS<Y...>::type, typename Op5<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OU { | |
typedef typename Add<typename Op6<U>::type, typename Op1<V>::type, typename CT<Y...>::type, typename Op3<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct IH { | |
typedef typename Add<typename Op2<U>::type, typename Op7<V>::type, typename AK<Y...>::type, typename Op6<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct SU { | |
typedef typename Add<typename Op3<U>::type, typename Op0<V>::type, typename OD<Y...>::type, typename Op7<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OT { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, typename KP<Y...>::type, typename Op6<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AJ { | |
typedef typename Add<typename Op7<U>::type, typename Op7<V>::type, typename ZH<Y...>::type, typename Op6<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WK { | |
typedef typename Add<typename Op3<U>::type, typename Op2<V>::type, typename XJ<Y...>::type, typename Op3<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct VL { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, typename DP<Y...>::type, typename Op3<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BW { | |
typedef typename Add<typename Op0<U>::type, typename Op7<V>::type, typename RP<Y...>::type, typename Op6<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MP { | |
typedef typename Add<typename Op1<U>::type, typename Op2<V>::type, typename LY<Y...>::type, typename Op2<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FD { | |
typedef typename Add<typename Op1<U>::type, typename Op4<V>::type, typename UP<Y...>::type, typename Op0<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DZ { | |
typedef typename Add<typename Op7<U>::type, typename Op3<V>::type, typename QN<Y...>::type, typename Op1<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UV { | |
typedef typename Add<typename Op0<U>::type, typename Op1<V>::type, typename SF<Y...>::type, typename Op5<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YJ { | |
typedef typename Add<typename Op0<U>::type, typename Op1<V>::type, typename PM<Y...>::type, typename Op0<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DW { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, typename CU<Y...>::type, typename Op3<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AN { | |
typedef typename Add<typename Op7<U>::type, typename Op4<V>::type, typename LM<Y...>::type, typename Op4<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct TL { | |
typedef typename Add<typename Op6<U>::type, typename Op0<V>::type, typename DG<Y...>::type, typename Op5<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AE { | |
typedef typename Add<typename Op7<U>::type, typename Op1<V>::type, typename AP<Y...>::type, typename Op3<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OA { | |
typedef typename Add<typename Op4<U>::type, typename Op3<V>::type, typename PA<Y...>::type, typename Op5<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UG { | |
typedef typename Add<typename Op4<U>::type, typename Op3<V>::type, typename RR<Y...>::type, typename Op2<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BK { | |
typedef typename Add<typename Op4<U>::type, typename Op2<V>::type, typename WE<Y...>::type, typename Op0<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FJ { | |
typedef typename Add<typename Op1<U>::type, typename Op3<V>::type, typename GS<Y...>::type, typename Op5<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NR { | |
typedef typename Add<typename Op5<U>::type, typename Op4<V>::type, typename WO<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UT { | |
typedef typename Add<typename Op7<U>::type, typename Op7<V>::type, typename VX<Y...>::type, typename Op3<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct EW { | |
typedef typename Add<typename Op5<U>::type, typename Op0<V>::type, typename KJ<Y...>::type, typename Op3<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QP { | |
typedef typename Add<typename Op7<U>::type, typename Op1<V>::type, typename AH<Y...>::type, typename Op6<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LF { | |
typedef typename Add<typename Op6<U>::type, typename Op0<V>::type, typename MV<Y...>::type, typename Op0<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FL { | |
typedef typename Add<typename Op7<U>::type, typename Op7<V>::type, typename TF<Y...>::type, typename Op7<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct TU { | |
typedef typename Add<typename Op3<U>::type, typename Op1<V>::type, typename ZX<Y...>::type, typename Op4<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BU { | |
typedef typename Add<typename Op1<U>::type, typename Op7<V>::type, typename AU<Y...>::type, typename Op2<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HF { | |
typedef typename Add<typename Op0<U>::type, typename Op5<V>::type, typename YX<Y...>::type, typename Op4<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MK { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, typename KL<Y...>::type, typename Op3<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct SK { | |
typedef typename Add<typename Op3<U>::type, typename Op5<V>::type, typename LI<Y...>::type, typename Op4<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OH { | |
typedef typename Add<typename Op2<U>::type, typename Op2<V>::type, typename OU<Y...>::type, typename Op4<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RK { | |
typedef typename Add<typename Op7<U>::type, typename Op4<V>::type, typename IH<Y...>::type, typename Op6<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MA { | |
typedef typename Add<typename Op7<U>::type, typename Op7<V>::type, typename SU<Y...>::type, typename Op2<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NX { | |
typedef typename Add<typename Op6<U>::type, typename Op6<V>::type, typename OT<Y...>::type, typename Op6<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct JW { | |
typedef typename Add<typename Op6<U>::type, typename Op6<V>::type, typename AJ<Y...>::type, typename Op6<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LS { | |
typedef typename Add<typename Op7<U>::type, typename Op4<V>::type, typename WK<Y...>::type, typename Op4<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PQ { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, typename VL<Y...>::type, typename Op6<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MN { | |
typedef typename Add<typename Op2<U>::type, typename Op7<V>::type, typename BW<Y...>::type, typename Op7<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BR { | |
typedef typename Add<typename Op0<U>::type, typename Op5<V>::type, typename MP<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OI { | |
typedef typename Add<typename Op7<U>::type, typename Op6<V>::type, typename FD<Y...>::type, typename Op0<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RM { | |
typedef typename Add<typename Op7<U>::type, typename Op3<V>::type, typename DZ<Y...>::type, typename Op5<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RY { | |
typedef typename Add<typename Op5<U>::type, typename Op0<V>::type, typename UV<Y...>::type, typename Op1<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NY { | |
typedef typename Add<typename Op4<U>::type, typename Op0<V>::type, typename YJ<Y...>::type, typename Op7<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WN { | |
typedef typename Add<typename Op7<U>::type, typename Op2<V>::type, typename DW<Y...>::type, typename Op3<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UH { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, typename AN<Y...>::type, typename Op2<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QX { | |
typedef typename Add<typename Op2<U>::type, typename Op6<V>::type, typename TL<Y...>::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FI { | |
typedef typename Add<typename Op7<U>::type, typename Op2<V>::type, typename AE<Y...>::type, typename Op5<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UR { | |
typedef typename Add<typename Op1<U>::type, typename Op4<V>::type, typename OA<Y...>::type, typename Op5<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KG { | |
typedef typename Add<typename Op6<U>::type, typename Op0<V>::type, typename UG<Y...>::type, typename Op6<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NA { | |
typedef typename Add<typename Op5<U>::type, typename Op5<V>::type, typename BK<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct TI { | |
typedef typename Add<typename Op2<U>::type, typename Op5<V>::type, typename FJ<Y...>::type, typename Op2<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GA { | |
typedef typename Add<typename Op3<U>::type, typename Op1<V>::type, typename NR<Y...>::type, typename Op1<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PC { | |
typedef typename Add<typename Op5<U>::type, typename Op1<V>::type, typename UT<Y...>::type, typename Op7<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct VN { | |
typedef typename Add<typename Op5<U>::type, typename Op5<V>::type, typename EW<Y...>::type, typename Op0<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GN { | |
typedef typename Add<typename Op2<U>::type, typename Op3<V>::type, typename QP<Y...>::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CO { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, typename LF<Y...>::type, typename Op5<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YD { | |
typedef typename Add<typename Op0<U>::type, typename Op7<V>::type, typename FL<Y...>::type, typename Op2<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PI { | |
typedef typename Add<typename Op5<U>::type, typename Op4<V>::type, typename TU<Y...>::type, typename Op6<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RW { | |
typedef typename Add<typename Op5<U>::type, typename Op2<V>::type, typename BU<Y...>::type, typename Op0<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HT { | |
typedef typename Add<typename Op3<U>::type, typename Op4<V>::type, typename HF<Y...>::type, typename Op1<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct US { | |
typedef typename Add<typename Op7<U>::type, typename Op0<V>::type, typename MK<Y...>::type, typename Op7<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YG { | |
typedef typename Add<typename Op5<U>::type, typename Op6<V>::type, typename SK<Y...>::type, typename Op4<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CI { | |
typedef typename Add<typename Op5<U>::type, typename Op4<V>::type, typename OH<Y...>::type, typename Op5<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OS { | |
typedef typename Add<typename Op7<U>::type, typename Op1<V>::type, typename RK<Y...>::type, typename Op1<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CN { | |
typedef typename Add<typename Op2<U>::type, typename Op0<V>::type, typename MA<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct EB { | |
typedef typename Add<typename Op3<U>::type, typename Op4<V>::type, typename NX<Y...>::type, typename Op4<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct JC { | |
typedef typename Add<typename Op7<U>::type, typename Op0<V>::type, typename JW<Y...>::type, typename Op7<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DD { | |
typedef typename Add<typename Op1<U>::type, typename Op7<V>::type, typename LS<Y...>::type, typename Op4<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FP { | |
typedef typename Add<typename Op5<U>::type, typename Op1<V>::type, typename PQ<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NF { | |
typedef typename Add<typename Op2<U>::type, typename Op0<V>::type, typename MN<Y...>::type, typename Op7<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QE { | |
typedef typename Add<typename Op5<U>::type, typename Op7<V>::type, typename BR<Y...>::type, typename Op7<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ZS { | |
typedef typename Add<typename Op4<U>::type, typename Op0<V>::type, typename OI<Y...>::type, typename Op1<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FG { | |
typedef typename Add<typename Op4<U>::type, typename Op3<V>::type, typename RM<Y...>::type, typename Op5<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AM { | |
typedef typename Add<typename Op5<U>::type, typename Op6<V>::type, typename RY<Y...>::type, typename Op4<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QD { | |
typedef typename Add<typename Op4<U>::type, typename Op5<V>::type, typename NY<Y...>::type, typename Op5<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct IV { | |
typedef typename Add<typename Op5<U>::type, typename Op5<V>::type, typename WN<Y...>::type, typename Op0<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CR { | |
typedef typename Add<typename Op7<U>::type, typename Op2<V>::type, typename UH<Y...>::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FC { | |
typedef typename Add<typename Op7<U>::type, typename Op4<V>::type, typename QX<Y...>::type, typename Op1<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct TP { | |
typedef typename Add<typename Op2<U>::type, typename Op0<V>::type, typename FI<Y...>::type, typename Op0<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MO { | |
typedef typename Add<typename Op2<U>::type, typename Op2<V>::type, typename UR<Y...>::type, typename Op1<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct XO { | |
typedef typename Add<typename Op3<U>::type, typename Op7<V>::type, typename KG<Y...>::type, typename Op0<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct SO { | |
typedef typename Add<typename Op3<U>::type, typename Op0<V>::type, typename NA<Y...>::type, typename Op4<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LA { | |
typedef typename Add<typename Op3<U>::type, typename Op6<V>::type, typename TI<Y...>::type, typename Op5<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QH { | |
typedef typename Add<typename Op3<U>::type, typename Op6<V>::type, typename GA<Y...>::type, typename Op1<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PB { | |
typedef typename Add<typename Op1<U>::type, typename Op5<V>::type, typename PC<Y...>::type, typename Op5<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AF { | |
typedef typename Add<typename Op2<U>::type, typename Op2<V>::type, typename VN<Y...>::type, typename Op7<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct EM { | |
typedef typename Add<typename Op2<U>::type, typename Op7<V>::type, typename GN<Y...>::type, typename Op7<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RB { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, typename CO<Y...>::type, typename Op1<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BJ { | |
typedef typename Add<typename Op4<U>::type, typename Op5<V>::type, typename YD<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct XZ { | |
typedef typename Add<typename Op7<U>::type, typename Op4<V>::type, typename PI<Y...>::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MH { | |
typedef typename Add<typename Op5<U>::type, typename Op6<V>::type, typename RW<Y...>::type, typename Op3<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CD { | |
typedef typename Add<typename Op6<U>::type, typename Op3<V>::type, typename HT<Y...>::type, typename Op5<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OQ { | |
typedef typename Add<typename Op3<U>::type, typename Op3<V>::type, typename US<Y...>::type, typename Op7<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct VJ { | |
typedef typename Add<typename Op0<U>::type, typename Op5<V>::type, typename YG<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct JX { | |
typedef typename Add<typename Op4<U>::type, typename Op0<V>::type, typename CI<Y...>::type, typename Op0<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HK { | |
typedef typename Add<typename Op6<U>::type, typename Op3<V>::type, typename OS<Y...>::type, typename Op4<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PF { | |
typedef typename Add<typename Op2<U>::type, typename Op3<V>::type, typename CN<Y...>::type, typename Op2<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YH { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, typename EB<Y...>::type, typename Op3<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct JK { | |
typedef typename Add<typename Op6<U>::type, typename Op2<V>::type, typename JC<Y...>::type, typename Op1<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MX { | |
typedef typename Add<typename Op4<U>::type, typename Op6<V>::type, typename DD<Y...>::type, typename Op1<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct IB { | |
typedef typename Add<typename Op0<U>::type, typename Op6<V>::type, typename FP<Y...>::type, typename Op4<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DK { | |
typedef typename Add<typename Op3<U>::type, typename Op4<V>::type, typename NF<Y...>::type, typename Op2<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BV { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, typename QE<Y...>::type, typename Op3<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct VW { | |
typedef typename Add<typename Op4<U>::type, typename Op6<V>::type, typename ZS<Y...>::type, typename Op1<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct SA { | |
typedef typename Add<typename Op3<U>::type, typename Op7<V>::type, typename FG<Y...>::type, typename Op3<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct VO { | |
typedef typename Add<typename Op0<U>::type, typename Op7<V>::type, typename AM<Y...>::type, typename Op2<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QT { | |
typedef typename Add<typename Op6<U>::type, typename Op2<V>::type, typename QD<Y...>::type, typename Op1<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BI { | |
typedef typename Add<typename Op5<U>::type, typename Op4<V>::type, typename IV<Y...>::type, typename Op3<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KX { | |
typedef typename Add<typename Op2<U>::type, typename Op7<V>::type, typename CR<Y...>::type, typename Op7<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CZ { | |
typedef typename Add<typename Op2<U>::type, typename Op2<V>::type, typename FC<Y...>::type, typename Op6<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct RD { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, typename TP<Y...>::type, typename Op2<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YF { | |
typedef typename Add<typename Op2<U>::type, typename Op7<V>::type, typename MO<Y...>::type, typename Op2<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ON { | |
typedef typename Add<typename Op6<U>::type, typename Op1<V>::type, typename XO<Y...>::type, typename Op6<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct VS { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, typename SO<Y...>::type, typename Op0<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KV { | |
typedef typename Add<typename Op5<U>::type, typename Op5<V>::type, typename LA<Y...>::type, typename Op3<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ZC { | |
typedef typename Add<typename Op4<U>::type, typename Op7<V>::type, typename QH<Y...>::type, typename Op1<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PD { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, typename PB<Y...>::type, typename Op0<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AS { | |
typedef typename Add<typename Op1<U>::type, typename Op2<V>::type, typename AF<Y...>::type, typename Op1<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct IT { | |
typedef typename Add<typename Op5<U>::type, typename Op0<V>::type, typename EM<Y...>::type, typename Op4<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LB { | |
typedef typename Add<typename Op7<U>::type, typename Op2<V>::type, typename RB<Y...>::type, typename Op1<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct LC { | |
typedef typename Add<typename Op0<U>::type, typename Op4<V>::type, typename BJ<Y...>::type, typename Op1<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GC { | |
typedef typename Add<typename Op2<U>::type, typename Op5<V>::type, typename XZ<Y...>::type, typename Op0<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DV { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, typename MH<Y...>::type, typename Op6<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QA { | |
typedef typename Add<typename Op1<U>::type, typename Op2<V>::type, typename CD<Y...>::type, typename Op3<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct EC { | |
typedef typename Add<typename Op1<U>::type, typename Op3<V>::type, typename OQ<Y...>::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WY { | |
typedef typename Add<typename Op3<U>::type, typename Op2<V>::type, typename VJ<Y...>::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HO { | |
typedef typename Add<typename Op2<U>::type, typename Op1<V>::type, typename JX<Y...>::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FR { | |
typedef typename Add<typename Op7<U>::type, typename Op6<V>::type, typename HK<Y...>::type, typename Op0<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KZ { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, typename PF<Y...>::type, typename Op7<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HL { | |
typedef typename Add<typename Op4<U>::type, typename Op7<V>::type, typename YH<Y...>::type, typename Op5<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ZW { | |
typedef typename Add<typename Op3<U>::type, typename Op6<V>::type, typename JK<Y...>::type, typename Op7<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CV { | |
typedef typename Add<typename Op3<U>::type, typename Op7<V>::type, typename MX<Y...>::type, typename Op1<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct KT { | |
typedef typename Add<typename Op4<U>::type, typename Op5<V>::type, typename IB<Y...>::type, typename Op7<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AA { | |
typedef typename Add<typename Op2<U>::type, typename Op5<V>::type, typename DK<Y...>::type, typename Op4<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HM { | |
typedef typename Add<typename Op5<U>::type, typename Op4<V>::type, typename BV<Y...>::type, typename Op4<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OM { | |
typedef typename Add<typename Op6<U>::type, typename Op1<V>::type, typename VW<Y...>::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NI { | |
typedef typename Add<typename Op1<U>::type, typename Op0<V>::type, typename SA<Y...>::type, typename Op1<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DS { | |
typedef typename Add<typename Op0<U>::type, typename Op2<V>::type, typename VO<Y...>::type, typename Op7<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WV { | |
typedef typename Add<typename Op5<U>::type, typename Op1<V>::type, typename QT<Y...>::type, typename Op2<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NZ { | |
typedef typename Add<typename Op5<U>::type, typename Op1<V>::type, typename BI<Y...>::type, typename Op4<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct DJ { | |
typedef typename Add<typename Op3<U>::type, typename Op2<V>::type, typename KX<Y...>::type, typename Op3<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MZ { | |
typedef typename Add<typename Op7<U>::type, typename Op0<V>::type, typename CZ<Y...>::type, typename Op2<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct AL { | |
typedef typename Add<typename Op4<U>::type, typename Op7<V>::type, typename RD<Y...>::type, typename Op7<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GW { | |
typedef typename Add<typename Op4<U>::type, typename Op7<V>::type, typename YF<Y...>::type, typename Op7<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OE { | |
typedef typename Add<typename Op2<U>::type, typename Op2<V>::type, typename ON<Y...>::type, typename Op2<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YL { | |
typedef typename Add<typename Op5<U>::type, typename Op7<V>::type, typename VS<Y...>::type, typename Op7<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct SR { | |
typedef typename Add<typename Op4<U>::type, typename Op1<V>::type, typename KV<Y...>::type, typename Op3<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WS { | |
typedef typename Add<typename Op7<U>::type, typename Op2<V>::type, typename ZC<Y...>::type, typename Op4<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct XU { | |
typedef typename Add<typename Op7<U>::type, typename Op2<V>::type, typename PD<Y...>::type, typename Op2<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct OF { | |
typedef typename Add<typename Op3<U>::type, typename Op7<V>::type, typename AS<Y...>::type, typename Op0<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YU { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, typename IT<Y...>::type, typename Op2<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NO { | |
typedef typename Add<typename Op5<U>::type, typename Op7<V>::type, typename LB<Y...>::type, typename Op0<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GF { | |
typedef typename Add<typename Op3<U>::type, typename Op2<V>::type, typename LC<Y...>::type, typename Op4<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct XX { | |
typedef typename Add<typename Op1<U>::type, typename Op1<V>::type, typename GC<Y...>::type, typename Op1<W>::type, typename Op7<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GB { | |
typedef typename Add<typename Op7<U>::type, typename Op4<V>::type, typename DV<Y...>::type, typename Op6<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct ZV { | |
typedef typename Add<typename Op7<U>::type, typename Op5<V>::type, typename QA<Y...>::type, typename Op3<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BB { | |
typedef typename Add<typename Op0<U>::type, typename Op6<V>::type, typename EC<Y...>::type, typename Op7<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct CS { | |
typedef typename Add<typename Op6<U>::type, typename Op1<V>::type, typename WY<Y...>::type, typename Op3<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct MW { | |
typedef typename Add<typename Op4<U>::type, typename Op1<V>::type, typename HO<Y...>::type, typename Op4<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct NS { | |
typedef typename Add<typename Op2<U>::type, typename Op0<V>::type, typename FR<Y...>::type, typename Op1<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct EO { | |
typedef typename Add<typename Op6<U>::type, typename Op4<V>::type, typename KZ<Y...>::type, typename Op5<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct JO { | |
typedef typename Add<typename Op3<U>::type, typename Op5<V>::type, typename HL<Y...>::type, typename Op6<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct QW { | |
typedef typename Add<typename Op3<U>::type, typename Op2<V>::type, typename ZW<Y...>::type, typename Op3<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct XH { | |
typedef typename Add<typename Op3<U>::type, typename Op1<V>::type, typename CV<Y...>::type, typename Op1<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct HG { | |
typedef typename Add<typename Op2<U>::type, typename Op4<V>::type, typename KT<Y...>::type, typename Op6<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct WC { | |
typedef typename Add<typename Op0<U>::type, typename Op2<V>::type, typename AA<Y...>::type, typename Op1<W>::type, typename Op1<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct EU { | |
typedef typename Add<typename Op6<U>::type, typename Op1<V>::type, typename HM<Y...>::type, typename Op2<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct FV { | |
typedef typename Add<typename Op6<U>::type, typename Op0<V>::type, typename OM<Y...>::type, typename Op7<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct PP { | |
typedef typename Add<typename Op3<U>::type, typename Op5<V>::type, typename NI<Y...>::type, typename Op3<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct BO { | |
typedef typename Add<typename Op4<U>::type, typename Op3<V>::type, typename DS<Y...>::type, typename Op1<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct TW { | |
typedef typename Add<typename Op1<U>::type, typename Op6<V>::type, typename WV<Y...>::type, typename Op0<W>::type, typename Op6<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct GQ { | |
typedef typename Add<typename Op5<U>::type, typename Op4<V>::type, typename NZ<Y...>::type, typename Op0<W>::type, typename Op0<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct UM { | |
typedef typename Add<typename Op1<U>::type, typename Op5<V>::type, typename DJ<Y...>::type, typename Op5<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct TJ { | |
typedef typename Add<typename Op4<U>::type, typename Op4<V>::type, typename MZ<Y...>::type, typename Op5<W>::type, typename Op2<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct EE { | |
typedef typename Add<typename Op6<U>::type, typename Op7<V>::type, typename AL<Y...>::type, typename Op0<W>::type, typename Op3<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct YP { | |
typedef typename Add<typename Op0<U>::type, typename Op5<V>::type, typename GW<Y...>::type, typename Op6<W>::type, typename Op5<X>::type>::type type; | |
}; | |
template<typename U, typename V, typename W, typename X, typename... Y> | |
struct XG { | |
typedef typename Add<typename Op6<U>::type, typename Op6<V>::type, typename OE<Y...>::type, typename Op2<W>::type, typename Op4<X>::type>::type type; | |
}; | |
template<typename... T> | |
struct KD { | |
typedef typename YL<T...>::type type; | |
}; | |
template<typename... T> | |
struct JG { | |
typedef typename SR<T...>::type type; | |
}; | |
template<typename... T> | |
struct AQ { | |
typedef typename WS<T...>::type type; | |
}; | |
template<typename... T> | |
struct PT { | |
typedef typename XU<T...>::type type; | |
}; | |
template<typename... T> | |
struct VI { | |
typedef typename OF<T...>::type type; | |
}; | |
template<typename... T> | |
struct UB { | |
typedef typename YU<T...>::type type; | |
}; | |
template<typename... T> | |
struct XN { | |
typedef typename NO<T...>::type type; | |
}; | |
template<typename... T> | |
struct CQ { | |
typedef typename GF<T...>::type type; | |
}; | |
template<typename... T> | |
struct AC { | |
typedef typename XX<T...>::type type; | |
}; | |
template<typename... T> | |
struct ZJ { | |
typedef typename GB<T...>::type type; | |
}; | |
template<typename... T> | |
struct FF { | |
typedef typename ZV<T...>::type type; | |
}; | |
template<typename... T> | |
struct FE { | |
typedef typename BB<T...>::type type; | |
}; | |
template<typename... T> | |
struct GG { | |
typedef typename CS<T...>::type type; | |
}; | |
template<typename... T> | |
struct ZO { | |
typedef typename MW<T...>::type type; | |
}; | |
template<typename... T> | |
struct HQ { | |
typedef typename NS<T...>::type type; | |
}; | |
template<typename... T> | |
struct KB { | |
typedef typename EO<T...>::type type; | |
}; | |
template<typename... T> | |
struct KF { | |
typedef typename JO<T...>::type type; | |
}; | |
template<typename... T> | |
struct RG { | |
typedef typename QW<T...>::type type; | |
}; | |
template<typename... T> | |
struct ZZ { | |
typedef typename XH<T...>::type type; | |
}; | |
template<typename... T> | |
struct FQ { | |
typedef typename HG<T...>::type type; | |
}; | |
template<typename... T> | |
struct SX { | |
typedef typename WC<T...>::type type; | |
}; | |
template<typename... T> | |
struct SD { | |
typedef typename EU<T...>::type type; | |
}; | |
template<typename... T> | |
struct FA { | |
typedef typename FV<T...>::type type; | |
}; | |
template<typename... T> | |
struct MM { | |
typedef typename PP<T...>::type type; | |
}; | |
template<typename... T> | |
struct YR { | |
typedef typename BO<T...>::type type; | |
}; | |
template<typename... T> | |
struct GM { | |
typedef typename TW<T...>::type type; | |
}; | |
template<typename... T> | |
struct AZ { | |
typedef typename GQ<T...>::type type; | |
}; | |
template<typename... T> | |
struct NW { | |
typedef typename UM<T...>::type type; | |
}; | |
template<typename... T> | |
struct BN { | |
typedef typename TJ<T...>::type type; | |
}; | |
template<typename... T> | |
struct CJ { | |
typedef typename EE<T...>::type type; | |
}; | |
template<typename... T> | |
struct CX { | |
typedef typename YP<T...>::type type; | |
}; | |
template<typename... T> | |
struct SS { | |
typedef typename XG<T...>::type type; | |
}; | |
template<typename...U> | |
struct II :And<TrueW, IsSame<typename KD<U...>::type, Op7<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct ZU :And<II<U...>, IsSame<typename JG<U...>::type, Op2<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct EG :And<ZU<U...>, IsSame<typename AQ<U...>::type, Op4<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct ZA :And<EG<U...>, IsSame<typename PT<U...>::type, Op5<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct OJ :And<ZA<U...>, IsSame<typename VI<U...>::type, Op5<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct LL :And<OJ<U...>, IsSame<typename UB<U...>::type, Op3<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct SN :And<LL<U...>, IsSame<typename XN<U...>::type, Op0<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct MI :And<SN<U...>, IsSame<typename CQ<U...>::type, Op3<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct ZL :And<MI<U...>, IsSame<typename AC<U...>::type, Op2<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct QG :And<ZL<U...>, IsSame<typename ZJ<U...>::type, Op1<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct KS :And<QG<U...>, IsSame<typename FF<U...>::type, Op1<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct UF :And<KS<U...>, IsSame<typename FE<U...>::type, Op6<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct TD :And<UF<U...>, IsSame<typename GG<U...>::type, Op5<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct RN :And<TD<U...>, IsSame<typename ZO<U...>::type, Op7<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct GH :And<RN<U...>, IsSame<typename HQ<U...>::type, Op0<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct SZ :And<GH<U...>, IsSame<typename KB<U...>::type, Op7<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct HH :And<SZ<U...>, IsSame<typename KF<U...>::type, Op1<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct EI :And<HH<U...>, IsSame<typename RG<U...>::type, Op6<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct PX :And<EI<U...>, IsSame<typename ZZ<U...>::type, Op6<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct ZY :And<PX<U...>, IsSame<typename FQ<U...>::type, Op6<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct LV :And<ZY<U...>, IsSame<typename SX<U...>::type, Op6<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct HU :And<LV<U...>, IsSame<typename SD<U...>::type, Op0<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct CP :And<HU<U...>, IsSame<typename FA<U...>::type, Op4<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct DA :And<CP<U...>, IsSame<typename MM<U...>::type, Op6<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct IS :And<DA<U...>, IsSame<typename YR<U...>::type, Op7<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct NT :And<IS<U...>, IsSame<typename GM<U...>::type, Op4<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct BF :And<NT<U...>, IsSame<typename AZ<U...>::type, Op1<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct UE :And<BF<U...>, IsSame<typename NW<U...>::type, Op4<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct NE :And<UE<U...>, IsSame<typename BN<U...>::type, Op3<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct TE :And<NE<U...>, IsSame<typename CJ<U...>::type, Op3<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct BD :And<TE<U...>, IsSame<typename CX<U...>::type, Op3<FloatT::type>::type>> { | |
}; | |
template<typename...U> | |
struct RT :And<BD<U...>, IsSame<typename SS<U...>::type, Op7<FloatT::type>::type>> { | |
}; | |
template<typename T, typename = void> | |
struct HA :IntW<3> {}; | |
template<typename T> | |
struct HA<T, typename IsTrue<And<Not<IsRef<T>>, Not<IsConst<T>>, IsFloat<T>>::value>::type> : IntW<5> {}; | |
template<typename T> | |
struct HA<T, typename IsTrue<And<Not<IsRef<T>>, IsConst<T>, Not<IsFloat<T>>>::value>::type> : IntW<7> {}; | |
template<typename T> | |
struct HA<T, typename IsTrue<And<Not<IsRef<T>>, IsConst<T>, IsFloat<T>>::value>::type> : IntW<11> {}; | |
template<typename T> | |
struct HA<T, typename IsTrue<And<IsRef<T>, Not<IsConst<T>>, Not<IsFloat<T>>>::value>::type> : IntW<13> {}; | |
template<typename T> | |
struct HA<T, typename IsTrue<And<IsRef<T>, Not<IsConst<T>>, IsFloat<T>>::value>::type> : IntW<17> {}; | |
template<typename T> | |
struct HA<T, typename IsTrue<And<IsRef<T>, IsConst<T>, Not<IsFloat<T>>>::value>::type> : IntW<19> {}; | |
template<typename T> | |
struct HA<T, typename IsTrue<And<IsRef<T>, IsConst<T>, IsFloat<T>>::value>::type> : IntW<21> {}; | |
template<typename...U> | |
struct Nagi { | |
static char buf[108]; | |
static const char* GetFlag() { | |
if (RT<U...>::value == false) { | |
return "I don't know the flag, ask some else!"; | |
} | |
int key[] = { HA<U>::value... }; | |
int S[256]; | |
int i, j = 0, t; | |
for (i = 0; i < 256; i++) { S[i] = i; } | |
for (i = 0; i < 256; i++) { | |
j = (j + S[i] + key[i % sizeof...(U)]) & 0xff; | |
t = S[i], S[i] = S[j], S[j] = t; | |
} | |
i = j = 0; | |
for (int k = 0; k < 107; k++) { | |
i = (i + 1) & 0xff; | |
j = (j + S[i]) & 0xff; | |
t = S[i], S[i] = S[j], S[j] = t; | |
buf[k] ^= S[(S[i] + S[j]) & 0xff]; | |
} | |
return buf; | |
} | |
}; | |
template<typename...U> | |
char Nagi<U...>::buf[108] = "\xb0\x0d\x1f\x0e\x2a\x27\x08\xd4\x1b\x8a\xf9\xde\x67\x86\x95\x80\x4f\x92\xca\xa1\x70\x2c\x53\xae\xd7\x4e\xf2\x86\x4f\x37\x03\xdc\xbe\xf2\xc4\x0e\x7c\x8f\x8a\x00\x09\x93\xf0\xd0\xf3\x37\xd4\x7e\x6f\x83\x6d\x3e\x16\x99\x63\x25\x7a\x3c\x30\x51\xaf\xf6\x3e\xc5\x0f\xc8\x93\xeb\x4f\x6b\xbd\xc2\xa1\x96\x2b\x4e\xc4\xca\x91\xcd\x70\xc2\x24\xe8\xa2\x92\xbe\x1e\xea\x48\xf9\x16\xb0\x78\x00\x6b\x7c\x95\xb1\xa0\xcb\xf7\x06\xaf\x4d\xe8\x96"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment