// (C) Copyright Tobias Schwinger
//
// Use modification and distribution are subject to the boost Software License,
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).

//------------------------------------------------------------------------------

// no include guards, this file is intended for multiple inclusion

// input:  BOOST_FT_syntax     type macro to use
// input:  BOOST_FT_cc         empty or cc specifier
// input:  BOOST_FT_ell        empty or "..."
// input:  BOOST_FT_cv         empty or cv qualifiers
// input:  BOOST_FT_flags      single decimal integer encoding the flags
// output: BOOST_FT_n          number of component types (arity+1)
// output: BOOST_FT_arity      current arity
// output: BOOST_FT_type       macro that expands to the type
// output: BOOST_FT_tplargs(p) template arguments with given prefix
// output: BOOST_FT_params(p)  parameters with given prefix

# include <boost/function_types/detail/synthesize_impl/arity10_1.hpp>
# define BOOST_FT_make_type(flags,cc,arity) BOOST_FT_make_type_impl(flags,cc,arity)
# define BOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 12 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,11)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 13 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,12)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 14 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,13)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 15 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
typedef typename mpl::next< iter_13 > ::type iter_14;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,14)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
, typename mpl::deref< iter_14 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 16 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
typedef typename mpl::next< iter_13 > ::type iter_14;
typedef typename mpl::next< iter_14 > ::type iter_15;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,15)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
, typename mpl::deref< iter_14 > ::type
, typename mpl::deref< iter_15 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 17 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
typedef typename mpl::next< iter_13 > ::type iter_14;
typedef typename mpl::next< iter_14 > ::type iter_15;
typedef typename mpl::next< iter_15 > ::type iter_16;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,16)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
, typename mpl::deref< iter_14 > ::type
, typename mpl::deref< iter_15 > ::type
, typename mpl::deref< iter_16 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 18 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
typedef typename mpl::next< iter_13 > ::type iter_14;
typedef typename mpl::next< iter_14 > ::type iter_15;
typedef typename mpl::next< iter_15 > ::type iter_16;
typedef typename mpl::next< iter_16 > ::type iter_17;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,17)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
, typename mpl::deref< iter_14 > ::type
, typename mpl::deref< iter_15 > ::type
, typename mpl::deref< iter_16 > ::type
, typename mpl::deref< iter_17 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 19 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
typedef typename mpl::next< iter_13 > ::type iter_14;
typedef typename mpl::next< iter_14 > ::type iter_15;
typedef typename mpl::next< iter_15 > ::type iter_16;
typedef typename mpl::next< iter_16 > ::type iter_17;
typedef typename mpl::next< iter_17 > ::type iter_18;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,18)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
, typename mpl::deref< iter_14 > ::type
, typename mpl::deref< iter_15 > ::type
, typename mpl::deref< iter_16 > ::type
, typename mpl::deref< iter_17 > ::type
, typename mpl::deref< iter_18 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 20 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
typedef typename mpl::next< iter_13 > ::type iter_14;
typedef typename mpl::next< iter_14 > ::type iter_15;
typedef typename mpl::next< iter_15 > ::type iter_16;
typedef typename mpl::next< iter_16 > ::type iter_17;
typedef typename mpl::next< iter_17 > ::type iter_18;
typedef typename mpl::next< iter_18 > ::type iter_19;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,19)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
, typename mpl::deref< iter_14 > ::type
, typename mpl::deref< iter_15 > ::type
, typename mpl::deref< iter_16 > ::type
, typename mpl::deref< iter_17 > ::type
, typename mpl::deref< iter_18 > ::type
, typename mpl::deref< iter_19 > ::type
> ::type type;
};
};
template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
struct BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20)
{
typedef BOOST_FT_syntax(BOOST_FT_cc,type BOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 BOOST_FT_ell) BOOST_FT_cv ;
};
template< >
struct synthesize_impl_o< BOOST_FT_flags, BOOST_FT_cc_id, 21 >
{
template<typename S> struct synthesize_impl_i
{
private:
typedef typename mpl::begin<S> ::type iter_0;
typedef typename mpl::next< iter_0 > ::type iter_1;
typedef typename mpl::next< iter_1 > ::type iter_2;
typedef typename mpl::next< iter_2 > ::type iter_3;
typedef typename mpl::next< iter_3 > ::type iter_4;
typedef typename mpl::next< iter_4 > ::type iter_5;
typedef typename mpl::next< iter_5 > ::type iter_6;
typedef typename mpl::next< iter_6 > ::type iter_7;
typedef typename mpl::next< iter_7 > ::type iter_8;
typedef typename mpl::next< iter_8 > ::type iter_9;
typedef typename mpl::next< iter_9 > ::type iter_10;
typedef typename mpl::next< iter_10 > ::type iter_11;
typedef typename mpl::next< iter_11 > ::type iter_12;
typedef typename mpl::next< iter_12 > ::type iter_13;
typedef typename mpl::next< iter_13 > ::type iter_14;
typedef typename mpl::next< iter_14 > ::type iter_15;
typedef typename mpl::next< iter_15 > ::type iter_16;
typedef typename mpl::next< iter_16 > ::type iter_17;
typedef typename mpl::next< iter_17 > ::type iter_18;
typedef typename mpl::next< iter_18 > ::type iter_19;
typedef typename mpl::next< iter_19 > ::type iter_20;
public:
typedef typename detail::BOOST_FT_make_type(BOOST_FT_flags,BOOST_FT_cc_id,20)
< typename mpl::deref< iter_0 > ::type
, typename detail::cv_traits<
typename mpl::deref< iter_1 > ::type > ::type
, typename mpl::deref< iter_2 > ::type
, typename mpl::deref< iter_3 > ::type
, typename mpl::deref< iter_4 > ::type
, typename mpl::deref< iter_5 > ::type
, typename mpl::deref< iter_6 > ::type
, typename mpl::deref< iter_7 > ::type
, typename mpl::deref< iter_8 > ::type
, typename mpl::deref< iter_9 > ::type
, typename mpl::deref< iter_10 > ::type
, typename mpl::deref< iter_11 > ::type
, typename mpl::deref< iter_12 > ::type
, typename mpl::deref< iter_13 > ::type
, typename mpl::deref< iter_14 > ::type
, typename mpl::deref< iter_15 > ::type
, typename mpl::deref< iter_16 > ::type
, typename mpl::deref< iter_17 > ::type
, typename mpl::deref< iter_18 > ::type
, typename mpl::deref< iter_19 > ::type
, typename mpl::deref< iter_20 > ::type
> ::type type;
};
};
# undef BOOST_FT_make_type
# undef BOOST_FT_make_type_impl


///////////////////////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
///////////////////////////////////////////////////////////////////////////////////////////////////
// Created : 2005-12-21
// Updated : 2008-09-30
// Licence : This source is under MIT License
// File    : glm/gtx/inverse.hpp
///////////////////////////////////////////////////////////////////////////////////////////////////
// Dependency:
// - GLM core
///////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef glm_gtx_inverse
#define glm_gtx_inverse

// Dependency:
#include "../glm.hpp"
#include "../gtc/matrix_operation.hpp"

namespace glm{
namespace gtx{
//! GLM_GTX_inverse extension: Inverse matrix functions
namespace inverse
{
	using namespace gtc::matrix_operation;

	//! Fast matrix inverse for affine matrix.
	//! From GLM_GTX_inverse extension.
	template <typename genType>
	genType affineInverse(genType const & m);

}//namespace inverse
}//namespace gtx
}//namespace glm

#include "inverse.inl"

namespace glm{using namespace gtx::inverse;}

#endif//glm_gtx_inverse


/*
 * This file is part of SpongeAPI, licensed under the MIT License (MIT).
 *
 * Copyright (c) SpongePowered <https://www.spongepowered.org>
 * Copyright (c) contributors
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
package org.spongepowered.api.data.manipulator.immutable.entity;

import org.spongepowered.api.data.manipulator.ImmutableDataManipulator;
import org.spongepowered.api.data.manipulator.mutable.entity.HorseData;
import org.spongepowered.api.data.type.HorseColor;
import org.spongepowered.api.data.type.HorseStyle;
import org.spongepowered.api.data.value.immutable.ImmutableValue;
import org.spongepowered.api.entity.living.animal.RideableHorse;

/**
 * An {@link ImmutableDataManipulator} handling the various information for a
 * {@link RideableHorse} including {@link HorseColor}, {@link HorseStyle}.
 */
public interface ImmutableHorseData extends ImmutableDataManipulator<ImmutableHorseData, HorseData> {

    /**
     * Gets an {@link ImmutableValue} for the {@link HorseColor}.
     *
     * @return The immutable value for the horse color
     */
    ImmutableValue<HorseColor> color();

    /**
     * Gets an {@link ImmutableValue} for the {@link HorseStyle}.
     *
     * @return The immutable value for the horse style
     */
    ImmutableValue<HorseStyle> style();

}


#ifndef BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
#define BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED

// Copyright Aleksey Gurtovoy 2000-2004
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
// See http://www.boost.org/libs/mpl for documentation.

// $Id: vector0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
// $Revision: 49267 $

#include <boost/mpl/vector/vector0.hpp>
#include <boost/mpl/integral_c.hpp>

namespace boost { namespace mpl {

template< typename T > struct vector0_c
    : vector0<>
{
    typedef vector0_c type;
    typedef T value_type;
};

}}

#endif // BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED


//
//  VRONodeCamera.h
//  ViroRenderer
//
//  Created by Raj Advani on 3/24/16.
//  Copyright © 2016 Viro Media. All rights reserved.
//
//  Permission is hereby granted, free of charge, to any person obtaining
//  a copy of this software and associated documentation files (the
//  "Software"), to deal in the Software without restriction, including
//  without limitation the rights to use, copy, modify, merge, publish,
//  distribute, sublicense, and/or sell copies of the Software, and to
//  permit persons to whom the Software is furnished to do so, subject to
//  the following conditions:
//
//  The above copyright notice and this permission notice shall be included
//  in all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
//  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
//  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
//  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
//  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
//  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

#ifndef VRONodeCamera_h
#define VRONodeCamera_h

#include "VROAnimatable.h"
#include "VROVector3f.h"
#include "VROQuaternion.h"

enum class VROCameraRotationType;

class VRONode;
/*
 Node cameras are attached to nodes, and derive their base position and rotation
 from said parent node. The "active" node camera each frame becomes the
 point of view from which the scene is rendered in that frame. To designate
 a node camera as active, set the VROView's pointOfView property to that
 camera's node.
 */
class VRONodeCamera : public VROAnimatable {

public:

    VRONodeCamera();
    virtual ~VRONodeCamera();

    void setPosition(VROVector3f position);
    void setBaseRotation(VROQuaternion baseRotation);
    void setRotationType(VROCameraRotationType type);
    void setOrbitFocalPoint(VROVector3f focalPt);
    void setFieldOfViewY(float fovy);
    void setRefNodeToCopyRotation(std::shared_ptr<VRONode> node);

    /*
     Return the ref node.
     */
    std::shared_ptr<VRONode> getRefNodeToCopyRotation() const {
        return _refNodeToCopyCameraRotation.lock();
    }

    VROVector3f getPosition() const {
        return _position;
    }
    VROQuaternion getBaseRotation() const {
        return _baseRotation;
    }
    VROCameraRotationType getRotationType() const {
        return _rotationType;
    }
    VROVector3f getOrbitFocalPoint() const {
        return _orbitFocalPt;
    }
    float getFieldOfView() const {
        return _fov;
    }

private:

    /*
     The position of the camera, relative to the node's coordinate system.
     */
    VROVector3f _position;

    /*
     The base rotation. This is set by the application. Total rotation is head
     rotation plus base rotation plus the rotation of the parent node.
     */
    VROQuaternion _baseRotation;

    /*
     The camera rotation type (orbit around a focal point, or standard rotation).
     */
    VROCameraRotationType _rotationType;

    /*
     If in orbit mode, this is the point that the camera focuses on, from its current
     position. Specified in the coordinate system of the parent node.
     */
    VROVector3f _orbitFocalPt;

    /*
     The field of view for this camera, along the major (larger) axis. The minor axis
     FOV will be automatically computed from this and the viewport. If this is zero, then
     Viro will use the default FOV for the view. This value is ignored on VR and AR
     platforms, where the FOV is fixed by the eye settings or the camera. This value
     is given in degrees.

     Note that the major axis is the axis with the larger dimension: the X axis in landscape
     mode, or the Y axis in portrait mode. By specifying the FOV in terms of the major axis, Viro
     can keep the FOV consistent even upon orientation changes when the major/minor axes
     swap.
     */
    float _fov;

    /*
     Can be null. Reference node that is used to store the head rotation of the camera in a VRONode.
     */
    std::weak_ptr<VRONode> _refNodeToCopyCameraRotation;

};

#endif /* VRONodeCamera_hpp */


<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema

    Version 2.0

    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.

    Example:

    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>

    There are any number of "resheader" rows that contain simple
    name/value pairs.

    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.

    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:

    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.

    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="https://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="ExitNonExistentNestedPromptError" xml:space="preserve">
    <value>Cannot exit a nested prompt because no nested prompts exist.</value>
  </data>
  <data name="EnterExitNestedPromptOutOfSync" xml:space="preserve">
    <value>EnterNestedPrompt has not been called as many times as ExitNestedPrompt.</value>
  </data>
</root>


/*=============================================================================
    Copyright (c) 2009 Hartmut Kaiser

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/

#if !defined(BOOST_FUSION_NVIEW_SEP_23_2009_0948PM)
#define BOOST_FUSION_NVIEW_SEP_23_2009_0948PM

#include <boost/fusion/support/config.hpp>
#include <boost/mpl/size.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/vector_c.hpp>
#include <boost/utility/result_of.hpp>

#include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/add_const.hpp>

#include <boost/fusion/support/is_view.hpp>
#include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/container/vector.hpp>
#include <boost/fusion/view/transform_view.hpp>

#include <boost/config.hpp>

namespace boost { namespace fusion
{
    namespace detail
    {
        struct addref
        {
            template<typename Sig>
            struct result;

            template<typename U>
            struct result<addref(U)> : add_reference<U> {};

#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
            template <typename T>
            BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
            typename add_reference<T>::type
            operator()(T& x) const
            {
                return x;
            }
#else
            template <typename T>
            BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
            typename result<addref(T)>::type
            operator()(T&& x) const
            {
                return x;
            }
#endif
        };

        struct addconstref
        {
            template<typename Sig>
            struct result;

            template<typename U>
            struct result<addconstref(U)>
              : add_reference<typename add_const<U>::type>
            {};

            template <typename T>
            BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
            typename add_reference<typename add_const<T>::type>::type
            operator()(T& x) const
            {
                return x;
            }

            template <typename T>
            BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
            typename add_reference<typename add_const<T>::type>::type
            operator()(T const& x) const
            {
                return x;
            }
        };
    }

    struct nview_tag;
    struct random_access_traversal_tag;
    struct fusion_sequence_tag;

    template<typename Sequence, typename Indicies>
    struct nview
      : sequence_base<nview<Sequence, Indicies> >
    {
        typedef nview_tag fusion_tag;
        typedef fusion_sequence_tag tag; // this gets picked up by MPL
        typedef random_access_traversal_tag category;

        typedef mpl::true_ is_view;
        typedef Indicies index_type;
        typedef typename mpl::size<Indicies>::type size;

        typedef typename mpl::if_<
            is_const<Sequence>, detail::addconstref, detail::addref
        >::type transform_type;
        typedef transform_view<Sequence, transform_type> transform_view_type;
        typedef typename result_of::as_vector<transform_view_type>::type
            sequence_type;

        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        explicit nview(Sequence& val)
          : seq(sequence_type(transform_view_type(val, transform_type())))
        {}

        sequence_type seq;
    };

}}

// define the nview() generator functions
#include <boost/fusion/view/nview/detail/nview_impl.hpp>

#endif


Check kernel version:
$ uname -r

Currently loaded module:
$ lsmod


<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o prog1/foo1.o -c prog1/foo1.c
cc -o prog1/foo2.o -c prog1/foo2.c
cc -o prog1/main.o -c prog1/main.c
cc -o prog1/prog1 prog1/main.o prog1/foo1.o prog1/foo2.o
cc -o prog2/bar1.o -c prog2/bar1.c
cc -o prog2/bar2.o -c prog2/bar2.c
cc -o prog2/main.o -c prog2/main.c
cc -o prog2/prog2 prog2/main.o prog2/bar1.o prog2/bar2.o
</screen>


---
name: Xamarin.Forms - Circle Map Overlay
description: "How to add a circular overlay to a map in order to highlight a circular area..."
page_type: sample
languages:
- csharp
products:
- xamarin
extensions:
    tags:
    - map
    - customrenderer
urlFragment: customrenderers-map-circle
---
# Circle Map Overlay

This sample demonstrates how to add a circular overlay to a map in order to highlight a circular area of the map.

For more information about this sample see [Highlighting a Circular Area on a Map](https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/custom-renderer/map/circle-map-overlay).

![Circle Map Overlay application screenshot](Screenshots/01All.png "Circle Map Overlay application screenshot")


fileFormatVersion: 2
guid: 7f2d865a945c0f64283a41f70b9158d1
timeCreated: 1441030995
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:


//----------------------------------------------
//            NGUI: Next-Gen UI kit
// Copyright © 2011-2016 Tasharen Entertainment
//----------------------------------------------

using UnityEngine;
using UnityEditor;

[CanEditMultipleObjects]
[CustomEditor(typeof(UIStretch))]
public class UIStretchEditor : Editor
{
	public override void OnInspectorGUI ()
	{
		base.OnInspectorGUI();
		EditorGUILayout.HelpBox("UIStretch is a legacy component and should not be used anymore. All widgets have anchoring functionality built-in.", MessageType.Warning);
	}
}


/**
 * The tabs view.  This does the actual rendering of data, creaton of columns and widget insertion.
 */
define(["jquery", "lodash", "backbone", "core/auth", "core/status", "core/analytics", "i18n/i18n"], function($, _, Backbone, Auth, Status, Track, Translate) {
	var GRID_SIZE = 10;

	var view = Backbone.View.extend({
		tagName: "div",
		className: function() {
			return "tab" + (this.model.get("isGrid") ? " grid" : "");
		},

		initialize: function() {
			this.model.on("columns:sort columns:update columns:reset columns:views:change update:columns change:fixed change:isGrid change:adPlacement", function() {
				var options = _.last(arguments);

				if (!(options && options.noRefresh)) {
					this.render();
				}
			}, this);

			this.once("inserted", function() {
				this._inserted = true;
			}, this);

			this.render(true);
		},

		/**
		 * Serializes the widgets and columns into a JSON object, updating the model in the process
		 *
		 * @api    public
		 * @param  {Boolean} [trigger] Whether or not to trigger a sort event for this serialize
		 * @return {Object}  The serialized tab
		 */
		serialize: function(trigger) {
			var columns = [];

			if (this.model.get("isGrid")) {
				var column = [];

				this.$(".widget").each(function() {
					var that = $(this),
						widget = that.data("view");

					var loc = [
						Math.round(that.position().top / GRID_SIZE),
						Math.round(that.position().left / GRID_SIZE),
						Math.round(that.outerWidth() / GRID_SIZE),
						Math.round(that.outerHeight() / GRID_SIZE)
					];

					if (loc[0] < 0) {
						loc[0] = 0;
					}

					if (loc[1] < 0) {
						loc[1] = 0;
					}

					// This is silent so a save isn't triggered prematurely
					widget.model.set("loc", loc, { silent: true });

					column.push(widget);
				});

				columns.push(column);
			}
			else {
				this.$(".widgets-container > .column").each(function() {
					var column = [];

					$(this).children(".widget").each(function() {
						column.push($(this).data("view"));
					});

					columns.push(column);
				});
			}

			_.each(columns, function(column, i) {
				var collection = this.model.columns[i];

				// Only update the collection if the order is different from the columns
				if (_.pluck(collection.views, "cid").join(" ") !== _.pluck(column, "cid").join(" ")) {
					// Remove the old models and views
					collection.remove(
						_(collection.views).difference(column).each(function(e) {
							// If the element is still in the document then it was just moved out
							// of this tab, don't destroy it
							if (!$.contains(document.documentElement, e.el)) {
								// Again, silenced to avoid premature event triggering
								collection.removeView(e, true);
							}
							else {
								// This has to splice so the remove call, which calls removeView,
								// won't destroy the element
								collection.views.splice(collection.views.indexOf(e), 1);
							}
						}).pluck("model").valueOf(),
						{ silent: true }
					);

					// Insert the new ones.  Backbone needs to set up references so these can't be directly inserted
					collection.add(_(column).difference(collection.views).pluck("model").valueOf(), { silent: true });

					// Sort the models to match the views, see lib/backbone.viewcollection for comments
					var cids = _.pluck(_.pluck(column, "model"), "cid"),
						order = _.zipObject(cids, cids.map(function(e, i) {
							return i + 1;
						}));

					collection.models = _.sortBy(collection.models, function(e) {
						return order[e.cid] || Infinity;
					});

					// And then the views to match the new model order
					collection.sortViews(true);
				}
			}, this);

			this.model.serializeColumns(true);

			if (trigger) {
				this.model.trigger("sort", this.model, this.model.columns);

				// Since the render only inserts columns and widgets it's not expensive
				// This is called in requestAnimationFrame so there isn't a visible freeze
				window.requestAnimationFrame(this.render.bind(this));
			}

			return columns;
		},

		/**
		 * Initializes sortable.
		 *
		 * By the time this is called the sortable group has already been initialized, this simply adds
		 * the views columns
		 *
		 * @api    private
		 */
		sortable: function() {
			this.$("> .remove, > .widgets-container.grid, > .widgets-container > .column").sortable({
				group: "columns",
				handle: ".handle",
				itemSelector: "section",
				placeholder: "
"
			});
		},

		/**
		 * Initializes widget resizing for grid-based tabs
		 *
		 * @api    private
		 */
		resizable: function() {
			var body = $(document.body),
				serialize = this.serialize.bind(this);

			this.$el.off("mousedown").on("mousedown", ".widget > .resize", function(e) {
				var startX = e.pageX,
					startY = e.pageY,
					widget = this.parentNode,
					startWidth = widget.offsetWidth,
					startHeight = widget.offsetHeight,

					grid = widget.parentNode,
					tc = body.children(".tab-container")[0],
					tcHeight = tc.offsetHeight,
					gridMax = tcHeight - 50,
					h;

				_.each(grid.querySelectorAll(".widget"), function(e) {
					h = e.offsetTop + e.offsetHeight;

					if (h >= gridMax) { gridMax = h; }
				});

				body.addClass("resizing").on("mousemove.widgetResize", function(e) {
					e.preventDefault();

					// -1 so it lines up with the insides of the grid squares
					widget.style.width = ((Math.round((startWidth + (e.pageX - startX)) / GRID_SIZE) * GRID_SIZE) - 1) + "px";
					widget.style.height = ((Math.round((startHeight + (e.pageY - startY)) / GRID_SIZE) * GRID_SIZE) - 1) + "px";

					var max = widget.offsetTop + widget.offsetHeight;

					if (gridMax > max) {
						max = gridMax;
					}

					grid.style.height = (max + 50) + "px";
				}).on("mouseup.widgetResize", function() {
					body.removeClass("resizing").off("mousemove.widgetResize mouseup.widgetResize");

					serialize(true);
				});
			});
		},

		/**
		 * Overrides Backbone's remove method
		 *
		 * @api    private
		 * @param  {sortable} [sortable] Whether or not only sortable should be removed
		 */
		remove: function(sortable) {
			// jQuery sortable doesn't have a method for removing containers from
			// groups without destroying the entire group or for accessing them directly.
			//
			// So, we have to get the rootGroup directly from an element's `data` which we
			// can then cleanup.
			var elms = this.$("> .remove, > .widgets-container.grid, > .widgets-container > .column"),
				dta = elms.first().data("sortable");

			if (dta) {
				var rootGroup = dta.rootGroup;

				_.remove(rootGroup.containers, function(e) {
					return elms.filter(e.el).length >= 1;
				});
			}

			if (sortable !== true) {
				Backbone.View.prototype.remove.call(this);
			}
		},

		/**
		 * Constructs a block ad element and appends it to the provided element
		 *
		 * @param   {Boolean}  active       If the tab is currently active
		 * @param   {Element}  el           The element the ad should be appended to
		 * @param   {String}   [placement]  The id of the placement for this ad
		 */
		insertAd: function(active, el, placement) {
			if (Auth.adFree) {
				return;
			}

			placement = placement || this.model.get("adPlacement") || "widget_block";

			var leaderboard = placement === "header_leaderboard" || placement === "footer_leaderboard",
				adId = _.uniqueId("blockAd"),
				ad = document.createElement(leaderboard ? "div" : "section");

			ad.setAttribute("class", "ad-unit" + (leaderboard ? (placement === "header_leaderboard" ? " top" : " bottom") : ""));

			ad.setAttribute("id", adId);

			el.appendChild(ad);

			// We avoid inflating impressions by only displaying the ad once the tab is visible
			// This could be modified to preload the various scripts and only show the ad itself later, but that causes issues with certain ads
			var displayAd = function() {
				var rightNow = new Date().toISOString().slice(0,10).replace(/-/g,"");
				ad.innerHTML = '<button type="button" class="hide-ad"></button>' +
					'';
			};

			this.once("render:complete", function() {
				if (this._inserted && this.$el.hasClass("active")) {
					displayAd();
				}
				else if (this._inserted) {
					this.once("displayed", displayAd);
				}
				else {
					this.once("inserted", function() {
						if (this.$el.hasClass("active")) {
							displayAd();
						}
						else {
							this.once("displayed", displayAd);
						}
					}, this);
				}
			}, this);

			return true;
		},

		render: function(initial) {
			// Remove sortable
			if (initial !== true) {
				this.remove(true);

				// If the sub-views are not detached before $.html() is called,
				// their data will be removed, destroying all event handlers.
				this.$("> .widgets-container > .column > .widget, > .widgets-container.grid > .widget").detach();

				// Call $.html() to remove any data or events related to $.sortable
				this.$el.html("");
			}

			var isGrid = this.model.get("isGrid");

			// Set the grid class
			this.el.classList.toggle("grid", isGrid);

			// We use native methods here for speed
			this.el.innerHTML = '
' + Translate("remove_widget") + '
';

			var adColumn = 0,
				adInserted = false,
				adPlacement = this.model.get("adPlacement"),
				insertAd = this.insertAd.bind(this, this.$el.hasClass("active"));

			// If this is a grid-based or empty tab, and the user hasn't chosen to have a header leaderboard,
			// default to a footer one since block-based ones don't work
			if (!Auth.adFree && adPlacement !== "header_leaderboard" && (isGrid || !_.reduce(this.model.columns, function(e, v) { return e + v.length; }, 0))) {
				adPlacement = "footer_leaderboard";
			}

			if (adPlacement === "header_leaderboard" || adPlacement === "footer_leaderboard") {
				insertAd(this.el, adPlacement);

				adInserted = true;
			}

			if (adPlacement === "right_block") {
				adColumn = this.model.columns.length - 1;
			}

			var main = document.createElement("main");

			main.setAttribute("class", "widgets-container" + (this.model.get("fixed") && !isGrid ? " fixed" : "") + (isGrid ? " grid" : ""));

			var models = _.map(this.model.columns, function(collection, columnIndex) {
				var column = main;

				if (!isGrid) {
					column = document.createElement("div");

					column.setAttribute("class", "column");

					main.appendChild(column);
				}

				_.each(collection.views, function(e, i) {
					if (adInserted || isGrid || columnIndex !== adColumn) {
						return column.appendChild(e.el);
					}

					var size = e.model.get("size");

					// Insert the ad before the widget if
					if (
						size !== "tiny" && i !== 0 // This isn't a tiny widget and the previous ones were (if they weren't the ad would already be in)
					) {
						adInserted = insertAd(column, adPlacement);
					}

					column.appendChild(e.el);

					// Insert the ad after the widget if
					if (
						!adInserted &&
						size !== "tiny" || // This isn't a tiny widget
						size === "tiny" && i === 3 // This is the 4th tiny widget in a row
					) {
						adInserted = insertAd(column, adPlacement);
					}
				});

				if (columnIndex === adColumn && !isGrid && !adInserted) {
					adInserted = insertAd(column, adPlacement);
				}

				return collection.models;
			});

			this.el.appendChild(main);

			if (isGrid) {
				var max = this.el.offsetHeight - 50;

				// This is the number of pixels the bottom of the furthest widget is from the top
				var btm = _.max(_.map(_.flatten(models), function(e) {
					var loc = e.get("loc");

					if (loc) {
						return (loc[0] + loc[3]) * GRID_SIZE;
					}

					return 0;
				}));

				if (btm > max) {
					max = btm;
				}

				// The -50 and +50 makes sure that the container is either 50px from the bottom of
				// the last widget or at the bottom of the tab but never past it if it isn't necessary
				main.style.height = (max + 50) + "px";

				this.resizable();
			}

			this.sortable();

			this.trigger("render:complete");

			return this;
		}
	});

	return view;
});


/*	$NetBSD: esp.h,v 1.13 2000/09/26 08:37:38 itojun Exp $	*/
/*	$KAME: esp.h,v 1.15 2000/09/20 18:15:22 itojun Exp $	*/

/*
 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the project nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

/*
 * RFC1827/2406 Encapsulated Security Payload.
 */

#ifndef _NETINET6_ESP_H_
#define _NETINET6_ESP_H_

struct esp {
	u_int32_t	esp_spi;	/* ESP */
	/*variable size, 32bit bound*/	/* Initialization Vector */
	/*variable size*/		/* Payload data */
	/*variable size*/		/* padding */
	/*8bit*/			/* pad size */
	/*8bit*/			/* next header */
	/*8bit*/			/* next header */
	/*variable size, 32bit bound*/	/* Authentication data (new IPsec) */
};

struct newesp {
	u_int32_t	esp_spi;	/* ESP */
	u_int32_t	esp_seq;	/* Sequence number */
	/*variable size*/		/* (IV and) Payload data */
	/*variable size*/		/* padding */
	/*8bit*/			/* pad size */
	/*8bit*/			/* next header */
	/*8bit*/			/* next header */
	/*variable size, 32bit bound*/	/* Authentication data */
};

struct esptail {
	u_int8_t	esp_padlen;	/* pad length */
	u_int8_t	esp_nxt;	/* Next header */
	/*variable size, 32bit bound*/	/* Authentication data (new IPsec)*/
};

#endif /*_NETINET6_ESP_H_*/


/*
 * Copyright 2002-2018 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.messaging.simp.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.core.annotation.AliasFor;

/**
 * Indicates the return value of a message-handling method should be sent as a
 * {@link org.springframework.messaging.Message} to the specified destination(s)
 * further prepended with "/user/{username}" where the user name
 * is extracted from the headers of the input message being handled.
 *
 *
Both {@code @SendTo} and {@code @SendToUser} may be used on the same method
 * in which case a message is sent to the destinations of both annotations.
 *
 *
This annotation may be placed class-level in which case it is inherited
 * by methods of the class. At the same time, method-level {@code @SendTo} or
 * {@code @SendToUser} annotations override any such at the class level.

 * @author Rossen Stoyanchev
 * @author Sam Brannen
 * @since 4.0
 * @see org.springframework.messaging.simp.annotation.support.SendToMethodReturnValueHandler
 * @see org.springframework.messaging.simp.user.UserDestinationMessageHandler
 * @see org.springframework.messaging.simp.SimpMessageHeaderAccessor#getUser()
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SendToUser {

	/**
	 * Alias for {@link #destinations}.
	 * @see #destinations
	 */
	@AliasFor("destinations")
	String[] value() default {};

	/**
	 * One or more destinations to send a message to.
	 *
If left unspecified, a default destination is selected based on the
	 * destination of the input message being handled.
	 * @since 4.2
	 * @see #value
	 * @see org.springframework.messaging.simp.annotation.support.SendToMethodReturnValueHandler
	 */
	@AliasFor("value")
	String[] destinations() default {};

	/**
	 * Whether messages should be sent to all sessions associated with the user
	 * or only to the session of the input message being handled.
	 *
By default, this is set to {@code true} in which case messages are
	 * broadcast to all sessions.
	 */
	boolean broadcast() default true;

}


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
  {{fo<caret>}}
</body>
</html>


namespace Volo.CmsKit.Public
{
    public class CmsKitPublicRemoteServiceConsts
    {
        public const string RemoteServiceName = "CmsKitPublic";
    }
}


#!/bin/sh

. ../testfuncs.sh

bn=`basename $0 .sh`

echo "Test: $bn"
run_program pocketsphinx_batch \
    -hmm $model/hmm/en_US/hub4wsj_sc_8k \
    -lm $model/lm/en_US/wsj0vp.5000.DMP \
    -dict $model/lm/en_US/cmu07a.dic \
    -ctl $data/wsj/test5k.s1.ctl \
    -cepdir $data/wsj \
    -cepext .mfc \
    -hyp $bn.match \
    -backtrace yes \
    -pl_window 2 \
    > $bn.log 2>&1

# Test whether it actually completed
if [ $? = 0 ]; then
    pass "run"
else
    fail "run"
fi

# Check the decoding results
grep AVERAGE $bn.log
$tests/word_align.pl -i $data/wsj/test5k.s1.lsn $bn.match | grep 'TOTAL Percent'
compare_table "match" $data/wsj/$bn.match $bn.match 1000000


package org.papervision3d.lights
{
	import org.papervision3d.core.math.Number3D;
	import org.papervision3d.core.proto.LightObject3D;

	public class PointLight3D extends LightObject3D
	{
		public static var DEFAULT_POS:Number3D = new Number3D( 0, 0, -1000 );

		/**
		 * Constructor.
		 *
		 * @param	showLight	A Boolean value indicating whether the light is visible.
		 * @param	flipped		A Boolean value indicating whether to flip the light-direction (needed for correct DAE-shading).
		 */
		public function PointLight3D(showLight:Boolean = false, flipped:Boolean = false)
		{
			super(showLight, flipped);
			x = DEFAULT_POS.x;
			y = DEFAULT_POS.y;
			z = DEFAULT_POS.z;
		}

	}
}


<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" default-locale="en-US">
  <!-- Generated with https://github.com/citation-style-language/utilities/tree/master/generate_dependent_styles/data/ieee -->
  <info>
    <title>IEEE Reviews in Biomedical Engineering</title>
    <id>http://www.zotero.org/styles/ieee-reviews-in-biomedical-engineering</id>
    <link href="http://www.zotero.org/styles/ieee-reviews-in-biomedical-engineering" rel="self"/>
    <link href="http://www.zotero.org/styles/ieee" rel="independent-parent"/>
    <link href="http://ieeexplore.ieee.org/servlet/opac?punumber=4664312" rel="documentation"/>
    <category citation-format="numeric"/>
    <category field="engineering"/>
    <category field="communications"/>
    <issn>1937-3333</issn>
    <updated>2014-05-14T12:00:00+00:00</updated>
    <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
  </info>
</style>


require('./proof')(1, prove)

function prove (async, okay) {
    var strata
    async(function () {
        serialize(__dirname + '/fixtures/tree.before.json', tmp, async())
    }, function () {
        strata = createStrata({ directory: tmp, leafSize: 3, branchSize: 3 })
        strata.open(async())
    }, function () {
        strata.iterator('h', async())
    }, function (cursor) {
        strata.mutator('h', async())
        cursor.unlock(async())
    }, function (cursor) {
        okay(cursor.page.items[cursor.offset].record, 'h', 'got')
        cursor.unlock(async())
    }, function() {
        strata.close(async())
    })
}


// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs defs_openbsd.go

package socket

const (
	sysAF_UNSPEC = 0x0
	sysAF_INET   = 0x2
	sysAF_INET6  = 0x18

	sysSOCK_RAW = 0x3
)

type iovec struct {
	Base *byte
	Len  uint32
}

type msghdr struct {
	Name       *byte
	Namelen    uint32
	Iov        *iovec
	Iovlen     uint32
	Control    *byte
	Controllen uint32
	Flags      int32
}

type cmsghdr struct {
	Len   uint32
	Level int32
	Type  int32
}

type sockaddrInet struct {
	Len    uint8
	Family uint8
	Port   uint16
	Addr   [4]byte /* in_addr */
	Zero   [8]int8
}

type sockaddrInet6 struct {
	Len      uint8
	Family   uint8
	Port     uint16
	Flowinfo uint32
	Addr     [16]byte /* in6_addr */
	Scope_id uint32
}

const (
	sizeofIovec   = 0x8
	sizeofMsghdr  = 0x1c
	sizeofCmsghdr = 0xc

	sizeofSockaddrInet  = 0x10
	sizeofSockaddrInet6 = 0x1c
)


;; generated by xml2sexpr.rb
(pingus-level
  (version 2)
  (head
    (levelname "Pingus do time")
    (description )
    (author "Craig Timpany <timpany@pingus.cx>")
    (number-of-pingus 100)
    (number-to-save 50)
    (time -1)
    (difficulty 5)
    (playable 1)
    (comment )
    (actions
      (blocker 20)
      (bomber 20)
      (bridger 20)
      (digger 20)
      (floater 20))
    (music "none")
    (levelsize 800 600))
  (objects
    (surface-background
      (surface
        (image "textures/anim_fire")
        (modifier "ROT0"))
      (color 0 0 0 0)
      (scroll-x 0.0)
      (scroll-y 0.0)
      (para-x 0.5)
      (para-y 0.5)
      (stretch-x #f)
      (stretch-y #f)
      (position 0 0 -150))
    (entrance
      (position 392 106 0)
      (type "generic")
      (direction "left")
      (release-rate 25)
      (owner-id 0))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 495 204 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 348 600 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 305 204 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 431 204 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 284 600 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 241 204 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 559 108 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 559 12 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 176 12 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_horiz")
        (modifier "ROT0"))
      (position 176 108 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 559 44 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 559 -52 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 347 536 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 284 536 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 176 -52 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 176 44 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 559 140 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_large")
        (modifier "ROT0"))
      (position 176 140 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_small")
        (modifier "ROT0"))
      (position 559 204 40))
    (groundpiece
      (type "solid")
      (surface
        (image "groundpieces/solid/misc/metalplate_small")
        (modifier "ROT0"))
      (position 209 204 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 16 331 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 655 587 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 717 332 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 717 459 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position -48 395 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 654 78 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position -47 206 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 16 79 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 144 204 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 718 15 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 655 204 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 144 332 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 80 396 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 80 268 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 591 395 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 591 523 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 591 268 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock1")
        (modifier "ROT0"))
      (position 367 204 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 16 395 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 655 395 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position -48 331 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 144 268 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 655 523 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 655 268 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 80 79 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position -47 142 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 80 332 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 80 204 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 591 587 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 591 332 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 591 459 40))
    (groundpiece
      (type "ground")
      (surface
        (image "groundpieces/ground/misc/stoneblock2")
        (modifier "ROT0"))
      (position 591 204 40))
    (exit
      (owner-id 0)
      (position 342 536 0)
      (surface
        (image "exits/stone")
        (modifier "ROT0"))
      (owner-id 0))))
;; EOF ;;


/** @file time_lw_D.cpp
 *
 *  Test D from the paper "Comparison of Polynomial-Oriented CAS" by Robert H.
 *  Lewis and Michael Wester. */

/*
 *  GiNaC Copyright (C) 1999-2016 Johannes Gutenberg University Mainz, Germany
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

#include "ginac.h"
#include "timer.h"
using namespace GiNaC;

#include <iostream>
#include <vector>
using namespace std;

static unsigned test()
{
	ex s;
	symbol y("y");
	symbol t("t");

	for (int i=1; i<=10; ++i)
		s += i*y*pow(t,i)/pow(y + i*t,i);

	s = s.normal();

	if (s.subs(t==0)!=0) {
		clog << "something very strange happened" << endl;
		return 1;
	}
	return 0;
}

unsigned time_lw_D()
{
	unsigned result = 0;
	unsigned count = 0;
	timer rolex;
	double time = .0;

	cout << "timing Lewis-Wester test D (normalized sum of rational fcns)" << flush;

	rolex.start();
	// correct for very small times:
	do {
		result = test();
		++count;
	} while ((time=rolex.read())<0.1 && !result);
	cout << '.' << flush;
	cout << time/count << 's' << endl;

	return result;
}

extern void randomify_symbol_serials();

int main(int argc, char** argv)
{
	randomify_symbol_serials();
	cout << setprecision(2) << showpoint;
	return time_lw_D();
}


Platforms
=========

We maintain the list of supported platforms on our wiki now, and how to
build and install SDL for those platforms:

    https://wiki.libsdl.org/Installation


#include <bits/stdc++.h>

using namespace std;

/**
 * Your LRUCache object will be instantiated and called as such:
 * LRUCache* obj = new LRUCache(capacity);
 * int param_1 = obj->get(key);
 * obj->put(key,value);
 */
class LRUCache {
public:
    LRUCache(int capacity) {
        capacity_ = capacity;
    }

    int get(int key) {
        if (ht_.find(key) == ht_.end()) {
            return -1;
        }

        int value = ht_[key]->second;
        if (li_.front().first != key) {
            li_.erase(ht_[key]);
            li_.push_front(make_pair(key, value));
            ht_[key] = li_.begin(); // iterator failure
        }

        return value;
    }

    void put(int key, int value) {
        if (ht_.find(key) != ht_.end()) {
            li_.erase(ht_[key]);
        } else {
            if (li_.size() == capacity_) {
                auto lru = li_.back();
                li_.pop_back();
                ht_.erase(lru.first);
            }
        }
        li_.push_front(make_pair(key, value));
        ht_[key] = li_.begin(); // iterator failure
    }

private:
    int capacity_;
    list<pair<int, int>> li_;
    unordered_map<int, list<pair<int, int>>::iterator> ht_;
};


/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.mahout.math;

import org.junit.Test;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;

/**
 * Tests {@link Varint}.
 */
public final class VarintTest extends MahoutTestCase {

  @Test
  public void testUnsignedLong() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    Varint.writeUnsignedVarLong(0L, out);
    for (long i = 1L; i > 0L && i <= (1L << 62); i <<= 1) {
      Varint.writeUnsignedVarLong(i-1, out);
      Varint.writeUnsignedVarLong(i, out);
    }
    Varint.writeUnsignedVarLong(Long.MAX_VALUE, out);

    DataInput in = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
    assertEquals(0L, Varint.readUnsignedVarLong(in));
    for (long i = 1L; i > 0L && i <= (1L << 62); i <<= 1) {
      assertEquals(i-1, Varint.readUnsignedVarLong(in));
      assertEquals(i, Varint.readUnsignedVarLong(in));
    }
    assertEquals(Long.MAX_VALUE, Varint.readUnsignedVarLong(in));
  }

  @Test
  public void testSignedPositiveLong() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    Varint.writeSignedVarLong(0L, out);
    for (long i = 1L; i <= (1L << 61); i <<= 1) {
      Varint.writeSignedVarLong(i-1, out);
      Varint.writeSignedVarLong(i, out);
    }
    Varint.writeSignedVarLong((1L << 62) - 1, out);
    Varint.writeSignedVarLong((1L << 62), out);
    Varint.writeSignedVarLong(Long.MAX_VALUE, out);

    DataInput in = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
    assertEquals(0L, Varint.readSignedVarLong(in));
    for (long i = 1L; i <= (1L << 61); i <<= 1) {
      assertEquals(i-1, Varint.readSignedVarLong(in));
      assertEquals(i, Varint.readSignedVarLong(in));
    }
    assertEquals((1L << 62) - 1, Varint.readSignedVarLong(in));
    assertEquals((1L << 62), Varint.readSignedVarLong(in));
    assertEquals(Long.MAX_VALUE, Varint.readSignedVarLong(in));
  }

  @Test
  public void testSignedNegativeLong() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    for (long i = -1L; i >= -(1L << 62); i <<= 1) {
      Varint.writeSignedVarLong(i, out);
      Varint.writeSignedVarLong(i+1, out);
    }
    Varint.writeSignedVarLong(Long.MIN_VALUE, out);
    Varint.writeSignedVarLong(Long.MIN_VALUE+1, out);
    DataInput in = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
    for (long i = -1L; i >= -(1L << 62); i <<= 1) {
      assertEquals(i, Varint.readSignedVarLong(in));
      assertEquals(i+1, Varint.readSignedVarLong(in));
    }
    assertEquals(Long.MIN_VALUE, Varint.readSignedVarLong(in));
    assertEquals(Long.MIN_VALUE+1, Varint.readSignedVarLong(in));
  }

  @Test
  public void testUnsignedInt() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    Varint.writeUnsignedVarInt(0, out);
    for (int i = 1; i > 0 && i <= (1 << 30); i <<= 1) {
      Varint.writeUnsignedVarLong(i-1, out);
      Varint.writeUnsignedVarLong(i, out);
    }
    Varint.writeUnsignedVarLong(Integer.MAX_VALUE, out);

    DataInput in = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
    assertEquals(0, Varint.readUnsignedVarInt(in));
    for (int i = 1; i > 0 && i <= (1 << 30); i <<= 1) {
      assertEquals(i-1, Varint.readUnsignedVarInt(in));
      assertEquals(i, Varint.readUnsignedVarInt(in));
    }
    assertEquals(Integer.MAX_VALUE, Varint.readUnsignedVarInt(in));
  }

  @Test
  public void testSignedPositiveInt() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    Varint.writeSignedVarInt(0, out);
    for (int i = 1; i <= (1 << 29); i <<= 1) {
      Varint.writeSignedVarLong(i-1, out);
      Varint.writeSignedVarLong(i, out);
    }
    Varint.writeSignedVarInt((1 << 30) - 1, out);
    Varint.writeSignedVarInt((1 << 30), out);
    Varint.writeSignedVarInt(Integer.MAX_VALUE, out);

    DataInput in = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
    assertEquals(0, Varint.readSignedVarInt(in));
    for (int i = 1; i <= (1 << 29); i <<= 1) {
      assertEquals(i-1, Varint.readSignedVarInt(in));
      assertEquals(i, Varint.readSignedVarInt(in));
    }
    assertEquals((1L << 30) - 1, Varint.readSignedVarInt(in));
    assertEquals((1L << 30), Varint.readSignedVarInt(in));
    assertEquals(Integer.MAX_VALUE, Varint.readSignedVarInt(in));
  }

  @Test
  public void testSignedNegativeInt() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    for (int i = -1; i >= -(1 << 30); i <<= 1) {
      Varint.writeSignedVarInt(i, out);
      Varint.writeSignedVarInt(i+1, out);
    }
    Varint.writeSignedVarInt(Integer.MIN_VALUE, out);
    Varint.writeSignedVarInt(Integer.MIN_VALUE+1, out);
    DataInput in = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
    for (int i = -1; i >= -(1 << 30); i <<= 1) {
      assertEquals(i, Varint.readSignedVarInt(in));
      assertEquals(i+1, Varint.readSignedVarInt(in));
    }
    assertEquals(Integer.MIN_VALUE, Varint.readSignedVarInt(in));
    assertEquals(Integer.MIN_VALUE+1, Varint.readSignedVarInt(in));
  }

  @Test
  public void testUnsignedSize() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    int expectedSize = 0;
    for (int exponent = 0; exponent <= 62; exponent++) {
      Varint.writeUnsignedVarLong(1L << exponent, out);
      expectedSize += 1 + exponent / 7;
      assertEquals(expectedSize, baos.size());
    }
  }

  @Test
  public void testSignedSize() throws Exception {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DataOutput out = new DataOutputStream(baos);
    int expectedSize = 0;
    for (int exponent = 0; exponent <= 61; exponent++) {
      Varint.writeSignedVarLong(1L << exponent, out);
      expectedSize += 1 + ((exponent + 1) / 7);
      assertEquals(expectedSize, baos.size());
    }
    for (int exponent = 0; exponent <= 61; exponent++) {
      Varint.writeSignedVarLong(-(1L << exponent)-1, out);
      expectedSize += 1 + ((exponent + 1) / 7);
      assertEquals(expectedSize, baos.size());
    }
  }

}


<?php

namespace Office365\Runtime;

class ResourcePath
{

    /**
     * ResourcePath constructor.
     * @param string $segment
     * @param ResourcePath|null $parent
     */
    public function __construct($segment, ResourcePath $parent = null)
    {
        $this->segment = $segment;
        $this->parent = $parent;
    }

    /**
     * @return string
     */
    public function getSegment(){
        return $this->segment;
    }

    /**
     * @return null|ResourcePath
     */
    public function getParent(){
        return $this->parent;
    }

    /**
     * @return string
     */
    public function toUrl()
    {
        $segments = array();
        $current = clone $this;
        while (isset($current)) {
            if(!is_null($current->getSegment()))
                array_unshift($segments, $current->getSegment());
            $current = $current->getParent();
        }
        return implode("/", $segments);
    }

    /**
     * @var ResourcePath
     */
    protected $parent;

    /**
     * @var string $segment
     */
    protected $segment;

    /**
     * @var int
     */
    public $Id;
}


bootstrap:
	@echo "\033[94m• Setting up go test for wasm to run in the browser\033[00m"
	go get -u github.com/agnivade/wasmbrowsertest
	mv ${GOPATH}/bin/wasmbrowsertest ${GOPATH}/bin/go_js_wasm_exec

.PHONY: test
test:
	@echo "\033[94m• Running Go vet\033[00m"
	go vet ./...
	@echo "\033[94m\n• Running Go tests\033[00m"
	go test -race ./...
	@echo "\033[94m\n• Running go wasm tests\033[00m"
	GOARCH=wasm GOOS=js go test ./pkg/app

release: test
ifdef VERSION
	@echo "\033[94m\n• Releasing ${VERSION}\033[00m"
	@git tag ${VERSION}
	@git push origin ${VERSION}

else
	@echo "\033[94m\n• Releasing version\033[00m"
	@echo "\033[91mVERSION is not defided\033[00m"
	@echo "~> make VERSION=\033[90mv6.0.0\033[00m release"
endif

build:
	@echo "\033[94m• Building go-app documentation PWA\033[00m"
	@GOARCH=wasm GOOS=js go build -o docs/web/app.wasm ./docs/src
	@echo "\033[94m• Building go-app documentation\033[00m"
	@go build -o docs/documentation ./docs/src

run: build
	@echo "\033[94m• Running go-app documentation server\033[00m"
	@cd docs && ./documentation local

github: build
	@echo "\033[94m• Generating GitHub Pages\033[00m"
	@cd docs && ./documentation github

clean:
	@go clean -v ./...
	-@rm docs/documentation


EESchema-LIBRARY Version 2.3
#encoding utf-8
#
# 1490-1024-ND
#
DEF 1490-1024-ND U 0 40 Y Y 1 F N
F0 "U" -650 1800 60 H V C CNN
F1 "1490-1024-ND" 900 -2400 60 H V C CNN
F2 "digikey-footprints:QFN-48-1EP_6x6mm" 700 2100 60 H I L CNN
F3 "" 200 300 60 H I L CNN
DRAW
S -800 1700 400 -2100 0 1 0 f
X VDD 1 -200 1900 200 D 50 50 1 1 W
X DCC 2 600 600 200 L 50 50 1 1 w
X P0.30 3 -1000 1600 200 R 50 50 1 1 B
X P0.00/AREF0 4 -1000 1500 200 R 50 50 1 1 B
X P0.01/AIN2 5 -1000 1400 200 R 50 50 1 1 B
X P0.02/AIN3 6 -1000 1300 200 R 50 50 1 1 B
X P0.03/AIN4 7 -1000 1200 200 R 50 50 1 1 B
X P0.04/AIN5 8 -1000 1100 200 R 50 50 1 1 B
X P0.05/AIN6 9 -1000 1000 200 R 50 50 1 1 B
X P0.06/AIN7/AREF1 10 -1000 900 200 R 50 50 1 1 B
X P0.14 20 -1000 100 200 R 50 50 1 1 B
X VDD_PA 30 600 500 200 L 50 50 1 1 w
X P0.21 40 -1000 -1200 200 R 50 50 1 1 B
X P0.07 11 -1000 800 200 R 50 50 1 1 B
X P0.15 21 -1000 0 200 R 50 50 1 1 B
X ANT1 31 -1000 -800 200 R 50 50 1 1 I
X P0.22 41 -1000 -1300 200 R 50 50 1 1 B
X VDD 12 -100 1900 200 D 50 50 1 1 W
X P0.16 22 -1000 -100 200 R 50 50 1 1 B
X ANT2 32 -1000 -900 200 R 50 50 1 1 I
X P0.23 42 -1000 -1400 200 R 50 50 1 1 B
X VSS 13 -100 -2300 200 U 50 50 1 1 W
X SWDIO/nRESET 23 -1000 -200 200 R 50 50 1 1 B
X VSS 33 0 -2300 200 U 50 50 1 1 W
X P0.24 43 -1000 -1500 200 R 50 50 1 1 B
X P0.08 14 -1000 700 200 R 50 50 1 1 B
X SWDCLK 24 -1000 -300 200 R 50 50 1 1 I
X VSS 34 100 -2300 200 U 50 50 1 1 W
X P0.25 44 -1000 -1600 200 R 50 50 1 1 B
X P0.09 15 -1000 600 200 R 50 50 1 1 B
X P0.17 25 -1000 -400 200 R 50 50 1 1 B
X AVDD 35 100 1900 200 D 50 50 1 1 W
X P0.26/AIN0/XL2 45 -1000 -1700 200 R 50 50 1 1 B
X P0.10 16 -1000 500 200 R 50 50 1 1 B
X P0.18 26 -1000 -500 200 R 50 50 1 1 B
X AVDD 36 200 1900 200 D 50 50 1 1 W
X P0.27/AIN1/XL1 46 -1000 -1800 200 R 50 50 1 1 B
X P0.11 17 -1000 400 200 R 50 50 1 1 B
X P0.19 27 -1000 -600 200 R 50 50 1 1 B
X XC1 37 -1000 -1000 200 R 50 50 1 1 I
X P0.28 47 -1000 -1900 200 R 50 50 1 1 B
X P0.12 18 -1000 300 200 R 50 50 1 1 B
X P0.20 28 -1000 -700 200 R 50 50 1 1 B
X XC2 38 -1000 -1100 200 R 50 50 1 1 I
X P0.29 48 -1000 -2000 200 R 50 50 1 1 B
X P0.13 19 -1000 200 200 R 50 50 1 1 B
X DEC2 29 0 1900 200 D 50 50 1 1 W
X DEC1 39 300 1900 200 D 50 50 1 1 W
X EP_GND 49 300 -2300 200 U 50 50 1 1 W
ENDDRAW
ENDDEF
#
#End Library


/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ARCH_X86_TLBBATCH_H
#define _ARCH_X86_TLBBATCH_H

#include <linux/cpumask.h>

struct arch_tlbflush_unmap_batch {
	/*
	 * Each bit set is a CPU that potentially has a TLB entry for one of
	 * the PFNs being flushed..
	 */
	struct cpumask cpumask;
};

#endif /* _ARCH_X86_TLBBATCH_H */


//
//  DateParser.swift
//  PDF Archiver
//
//  Created by Julian Kahnert on 13.06.18.
//  Copyright © 2019 Julian Kahnert. All rights reserved.
//

import Foundation

struct DateParser {
    var formats = [
        "yyyy-MM-dd": "\\d{4}-\\d{2}-\\d{2}",
        "yyyy_MM_dd": "\\d{4}_\\d{2}_\\d{2}",
        "yyyyMMdd": "\\d{8}"
    ]
    let dateFormatter = DateFormatter()

    func parse(_ dateIn: String) -> (date: Date, rawDate: String)? {
        for format in formats {
            if let dateRaw = dateIn.capturedGroups(withRegex: "(\(format.value))") {
                self.dateFormatter.dateFormat = format.key
                if let date = self.dateFormatter.date(from: String(dateRaw[0])) {
                    return (date, String(dateRaw[0]))
                }
            }
        }

        return nil
    }
}


# coding: utf-8
'''Tests for CovManager setup_repository management command

@author:     Jesse Schwartzentruber (:truber)

@license:

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
'''
import os
import pytest
from django.core.management import call_command, CommandError
from covmanager.models import Repository

pytestmark = pytest.mark.django_db()  # pylint: disable=invalid-name

def test_bad_args():
    with pytest.raises(CommandError, match=r"Error: .*? arguments"):
        call_command("setup_repository")

    with pytest.raises(CommandError, match=r"Error: .*? arguments"):
        call_command("setup_repository", "")

    with pytest.raises(CommandError, match=r"Error: .*? arguments"):
        call_command("setup_repository", "", "")

    with pytest.raises(CommandError, match=r"Error: invalid repository name"):
        call_command("setup_repository", "", "git", ".")

    with pytest.raises(CommandError, match=r"Error: invalid provider class"):
        call_command("setup_repository", "test", "", ".")

    with pytest.raises(CommandError, match=r"Error: invalid location"):
        call_command("setup_repository", "test", "git", "")

    with pytest.raises(CommandError, match=r"Error: unrecognized arguments: "):
        call_command("setup_repository", "", "", "", "")

def test_repo_exists():
    Repository.objects.create(name="test")
    with pytest.raises(CommandError, match=r"Error: repository with name '.*' already exists!"):
        call_command("setup_repository", "test", "", "")

def test_bad_provider():
    with pytest.raises(CommandError, match=r"Error: 'bad' is not a valid source code provider!"):
        call_command("setup_repository", "test", "bad", ".")

def test_git_create():
    call_command("setup_repository", "test", "git", ".")
    repo = Repository.objects.get(name="test")
    assert repo.classname == "GITSourceCodeProvider"
    assert repo.location == os.path.realpath(".")

    call_command("setup_repository", "test2", "GITSourceCodeProvider", ".")
    repo = Repository.objects.get(name="test2")
    assert repo.classname == "GITSourceCodeProvider"
    assert repo.location == os.path.realpath(".")

def test_hg_create():
    call_command("setup_repository", "test", "hg", ".")
    repo = Repository.objects.get(name="test")
    assert repo.classname == "HGSourceCodeProvider"
    assert repo.location == os.path.realpath(".")

    call_command("setup_repository", "test2", "HGSourceCodeProvider", ".")
    repo = Repository.objects.get(name="test2")
    assert repo.classname == "HGSourceCodeProvider"
    assert repo.location == os.path.realpath(".")


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>files</key>
	<dict>
		<key>Resources/Info.plist</key>
		<data>
		BN1ArtJ5Ez3TiiDj5C0ZtuyxaC4=
		</data>
	</dict>
	<key>files2</key>
	<dict>
		<key>Resources/Info.plist</key>
		<dict>
			<key>hash</key>
			<data>
			BN1ArtJ5Ez3TiiDj5C0ZtuyxaC4=
			</data>
			<key>hash2</key>
			<data>
			RFtWQPgdKRIBOXqScLuVpI3JPTzcffl1C9egDli17mw=
			</data>
		</dict>
	</dict>
	<key>rules</key>
	<dict>
		<key>^Resources/</key>
		<true/>
		<key>^Resources/.*\.lproj/</key>
		<dict>
			<key>optional</key>
			<true/>
			<key>weight</key>
			<real>1000</real>
		</dict>
		<key>^Resources/.*\.lproj/locversion.plist$</key>
		<dict>
			<key>omit</key>
			<true/>
			<key>weight</key>
			<real>1100</real>
		</dict>
		<key>^Resources/Base\.lproj/</key>
		<dict>
			<key>weight</key>
			<real>1010</real>
		</dict>
		<key>^version.plist$</key>
		<true/>
	</dict>
	<key>rules2</key>
	<dict>
		<key>.*\.dSYM($|/)</key>
		<dict>
			<key>weight</key>
			<real>11</real>
		</dict>
		<key>^(.*/)?\.DS_Store$</key>
		<dict>
			<key>omit</key>
			<true/>
			<key>weight</key>
			<real>2000</real>
		</dict>
		<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
		<dict>
			<key>nested</key>
			<true/>
			<key>weight</key>
			<real>10</real>
		</dict>
		<key>^.*</key>
		<true/>
		<key>^Info\.plist$</key>
		<dict>
			<key>omit</key>
			<true/>
			<key>weight</key>
			<real>20</real>
		</dict>
		<key>^PkgInfo$</key>
		<dict>
			<key>omit</key>
			<true/>
			<key>weight</key>
			<real>20</real>
		</dict>
		<key>^Resources/</key>
		<dict>
			<key>weight</key>
			<real>20</real>
		</dict>
		<key>^Resources/.*\.lproj/</key>
		<dict>
			<key>optional</key>
			<true/>
			<key>weight</key>
			<real>1000</real>
		</dict>
		<key>^Resources/.*\.lproj/locversion.plist$</key>
		<dict>
			<key>omit</key>
			<true/>
			<key>weight</key>
			<real>1100</real>
		</dict>
		<key>^Resources/Base\.lproj/</key>
		<dict>
			<key>weight</key>
			<real>1010</real>
		</dict>
		<key>^[^/]+$</key>
		<dict>
			<key>nested</key>
			<true/>
			<key>weight</key>
			<real>10</real>
		</dict>
		<key>^embedded\.provisionprofile$</key>
		<dict>
			<key>weight</key>
			<real>20</real>
		</dict>
		<key>^version\.plist$</key>
		<dict>
			<key>weight</key>
			<real>20</real>
		</dict>
	</dict>
</dict>
</plist>