text:
#if LESSTHAN_NET35

using System.Collections.Generic;
using Theraot.Reflection;

namespace System.Linq
{
    public static partial class Enumerable
    {
        public static double Average(this IEnumerable<int> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0L;
            var count = 0L;
            foreach (var item in source)
            {
                sum += item;
                count++;
            }

            if (count == 0L)
            {
                throw new InvalidOperationException();
            }

            return sum / (double)count;
        }

        public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector)
        {
            return Average(Select(source, selector));
        }

        public static double? Average(this IEnumerable<int?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0L;
            var count = 0L;
            foreach (var item in Where(source, n => n.HasValue))
            {
                sum += item!.Value;
                count++;
            }

            if (count == 0L)
            {
                return null;
            }

            return sum / (double)count;
        }

        public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector)
        {
            return Average(Select(source, selector));
        }

        public static double Average(this IEnumerable<long> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0L;
            var count = 0L;
            foreach (var item in source)
            {
                sum += item;
                count++;
            }

            if (count == 0L)
            {
                throw new InvalidOperationException();
            }

            return sum / (double)count;
        }

        public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector)
        {
            return Average(Select(source, selector));
        }

        public static double? Average(this IEnumerable<long?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0L;
            var count = 0L;
            foreach (var item in Where(source, n => n.HasValue))
            {
                sum += item!.Value;
                count++;
            }

            if (count == 0L)
            {
                return null;
            }

            return sum / (double)count;
        }

        public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector)
        {
            return Average(Select(source, selector));
        }

        public static float Average(this IEnumerable<float> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0f;
            var count = 0L;
            foreach (var item in source)
            {
                sum += item;
                count++;
            }

            if (count == 0L)
            {
                throw new InvalidOperationException();
            }

            return sum / count;
        }

        public static float Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector)
        {
            return Average(Select(source, selector));
        }

        public static float? Average(this IEnumerable<float?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0f;
            var count = 0L;
            foreach (var nullable in Where(source, n => n.HasValue))
            {
                sum += nullable!.Value;
                count++;
            }

            if (count == 0L)
            {
                return null;
            }

            return sum / count;
        }

        public static float? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector)
        {
            return Average(Select(source, selector));
        }

        public static double Average(this IEnumerable<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0d;
            var count = 0L;
            foreach (var item in source)
            {
                sum += item;
                count++;
            }

            if (count == 0L)
            {
                throw new InvalidOperationException();
            }

            return sum / count;
        }

        public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector)
        {
            return Average(Select(source, selector));
        }

        public static double? Average(this IEnumerable<double?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0d;
            var count = 0L;
            foreach (var item in Where(source, n => n.HasValue))
            {
                sum += item!.Value;
                count++;
            }

            if (count == 0L)
            {
                return null;
            }

            return sum / count;
        }

        public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector)
        {
            return Average(Select(source, selector));
        }

        public static decimal Average(this IEnumerable<decimal> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0m;
            var count = 0L;
            foreach (var item in source)
            {
                sum += item;
                count++;
            }

            if (count == 0L)
            {
                throw new InvalidOperationException();
            }

            return sum / count;
        }

        public static decimal Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector)
        {
            return Average(Select(source, selector));
        }

        public static decimal? Average(this IEnumerable<decimal?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0m;
            var count = 0L;
            foreach (var item in Where(source, n => n.HasValue))
            {
                sum += item!.Value;
                count++;
            }

            if (count == 0)
            {
                return null;
            }

            return sum / count;
        }

        public static decimal? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector)
        {
            return Average(Select(source, selector));
        }

        public static int Max(this IEnumerable<int> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var max = int.MinValue;
            foreach (var element in source)
            {
                if (element > max)
                {
                    max = element;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            throw new InvalidOperationException();
        }

        public static long Max(this IEnumerable<long> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var max = long.MinValue;
            foreach (var element in source)
            {
                if (element > max)
                {
                    max = element;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            throw new InvalidOperationException();
        }

        public static double Max(this IEnumerable<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    throw new InvalidOperationException();
                }

                // Skip NaN
                var max = enumerator.Current;
                while (double.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    max = enumerator.Current;
                }

                while (enumerator.MoveNext())
                {
                    var element = enumerator.Current;
                    if (element > max)
                    {
                        max = element;
                    }
                }

                return max;
            }
        }

        public static float Max(this IEnumerable<float> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    throw new InvalidOperationException();
                }

                // Skip NaN
                var max = enumerator.Current;
                while (float.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    max = enumerator.Current;
                }

                while (enumerator.MoveNext())
                {
                    var element = enumerator.Current;
                    if (element > max)
                    {
                        max = element;
                    }
                }

                return max;
            }
        }

        public static decimal Max(this IEnumerable<decimal> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var max = decimal.MinValue;
            foreach (var element in source)
            {
                if (element > max)
                {
                    max = element;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            throw new InvalidOperationException();
        }

        public static int? Max(this IEnumerable<int?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var max = int.MinValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (value > max)
                {
                    max = value;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            return null;
        }

        public static long? Max(this IEnumerable<long?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var max = long.MinValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (value > max)
                {
                    max = value;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            return null;
        }

        public static double? Max(this IEnumerable<double?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    return null;
                }

                // Skip null
                var found = enumerator.Current;
                while (!found.HasValue)
                {
                    if (!enumerator.MoveNext())
                    {
                        return null;
                    }

                    found = enumerator.Current;
                }

                // Skip NaN
                var max = found.Value;
                while (double.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    // Skip null
                    found = enumerator.Current;
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = enumerator.Current;
                    }

                    max = found.Value;
                }

                while (enumerator.MoveNext())
                {
                    // Skip null
                    found = enumerator.Current;
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = enumerator.Current;
                    }

                    var value = found.Value;
                    if (value > max)
                    {
                        max = value;
                    }
                }

                return max;
            }
        }

        public static float? Max(this IEnumerable<float?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    return null;
                }

                // Skip null
                var found = enumerator.Current;
                while (!found.HasValue)
                {
                    if (!enumerator.MoveNext())
                    {
                        return null;
                    }

                    found = enumerator.Current;
                }

                // Skip NaN
                var max = found.Value;
                while (float.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    // Skip null
                    found = enumerator.Current;
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = enumerator.Current;
                    }

                    max = found.Value;
                }

                while (enumerator.MoveNext())
                {
                    // Skip null
                    found = enumerator.Current;
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = enumerator.Current;
                    }

                    var value = found.Value;
                    if (value > max)
                    {
                        max = value;
                    }
                }

                return max;
            }
        }

        public static decimal? Max(this IEnumerable<decimal?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var max = decimal.MinValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (value > max)
                {
                    max = value;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            return null;
        }

        public static TSource Max<TSource>(this IEnumerable<TSource> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var comparer = Comparer<TSource>.Default;
            var max = default(TSource)!;
            if (typeof(TSource).CanBeNull())
            {
                foreach (var element in source)
                {
                    if (element != null && (max == null || comparer.Compare(element, max) > 0))
                    {
                        max = element;
                    }
                }

                return max;
            }

            var found = false;
            foreach (var element in source)
            {
                if (found)
                {
                    if (comparer.Compare(element, max) > 0)
                    {
                        max = element;
                    }
                }
                else
                {
                    max = element;
                    found = true;
                }
            }

            if (found)
            {
                return max;
            }

            throw new InvalidOperationException();
        }

        public static int Max<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var max = int.MinValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (value > max)
                {
                    max = value;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            throw new InvalidOperationException();
        }

        public static long Max<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var max = long.MinValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (value > max)
                {
                    max = value;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            throw new InvalidOperationException();
        }

        public static double Max<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    throw new InvalidOperationException();
                }

                // Skip NaN
                var max = selector(enumerator.Current);
                while (double.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    max = selector(enumerator.Current);
                }

                while (enumerator.MoveNext())
                {
                    var value = selector(enumerator.Current);
                    if (value > max)
                    {
                        max = value;
                    }
                }

                return max;
            }
        }

        public static float Max<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    throw new InvalidOperationException();
                }

                // Skip NaN
                var max = selector(enumerator.Current);
                while (float.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    max = selector(enumerator.Current);
                }

                while (enumerator.MoveNext())
                {
                    var value = selector(enumerator.Current);
                    if (value > max)
                    {
                        max = value;
                    }
                }

                return max;
            }
        }

        public static decimal Max<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var max = decimal.MinValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (value > max)
                {
                    max = value;
                }

                found = true;
            }

            if (found)
            {
                return max;
            }

            throw new InvalidOperationException();
        }

        public static int? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            int? max = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (max.HasValue)
                {
                    if (item > max)
                    {
                        max = item;
                    }
                }
                else
                {
                    max = item;
                }

                found = true;
            }

            return found ? max : null;
        }

        public static long? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            long? max = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (max.HasValue)
                {
                    if (item > max)
                    {
                        max = item;
                    }
                }
                else
                {
                    max = item;
                }

                found = true;
            }

            return found ? max : null;
        }

        public static double? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    return null;
                }

                // Skip null
                var found = selector(enumerator.Current);
                while (!found.HasValue)
                {
                    if (!enumerator.MoveNext())
                    {
                        return null;
                    }

                    found = selector(enumerator.Current);
                }

                // Skip NaN
                var max = found.Value;
                while (double.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    // Skip null
                    found = selector(enumerator.Current);
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = selector(enumerator.Current);
                    }

                    max = found.Value;
                }

                while (enumerator.MoveNext())
                {
                    // Skip null
                    found = selector(enumerator.Current);
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = selector(enumerator.Current);
                    }

                    var value = found.Value;
                    if (value > max)
                    {
                        max = value;
                    }
                }

                return max;
            }
        }

        public static float? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            using (var enumerator = source.GetEnumerator())
            {
                if (!enumerator.MoveNext())
                {
                    return null;
                }

                // Skip null
                var found = selector(enumerator.Current);
                while (!found.HasValue)
                {
                    if (!enumerator.MoveNext())
                    {
                        return null;
                    }

                    found = selector(enumerator.Current);
                }

                // Skip NaN
                var max = found.Value;
                while (float.IsNaN(max))
                {
                    if (!enumerator.MoveNext())
                    {
                        return max;
                    }

                    // Skip null
                    found = selector(enumerator.Current);
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = selector(enumerator.Current);
                    }

                    max = found.Value;
                }

                while (enumerator.MoveNext())
                {
                    // Skip null
                    found = selector(enumerator.Current);
                    while (!found.HasValue)
                    {
                        if (!enumerator.MoveNext())
                        {
                            return max;
                        }

                        found = selector(enumerator.Current);
                    }

                    var value = found.Value;
                    if (value > max)
                    {
                        max = value;
                    }
                }

                return max;
            }
        }

        public static decimal? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            decimal? max = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (max.HasValue)
                {
                    if (item > max)
                    {
                        max = item;
                    }
                }
                else
                {
                    max = item;
                }

                found = true;
            }

            return found ? max : null;
        }

        public static TResult Max<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            TResult ClosureSelector(TSource item, int _)
            {
                return selector(item);
            }

            return Max
            (
                SelectExtracted
                (
                    source,
                    ClosureSelector
                )
            );
        }

        public static int Min(this IEnumerable<int> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = int.MaxValue;
            foreach (var element in source)
            {
                if (element < min)
                {
                    min = element;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static long Min(this IEnumerable<long> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = long.MaxValue;
            foreach (var element in source)
            {
                if (element < min)
                {
                    min = element;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static double Min(this IEnumerable<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = double.MaxValue;
            foreach (var element in source)
            {
                if (double.IsNaN(element))
                {
                    return element;
                }

                if (element < min)
                {
                    min = element;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static float Min(this IEnumerable<float> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = float.MaxValue;
            foreach (var element in source)
            {
                if (float.IsNaN(element))
                {
                    return element;
                }

                if (element < min)
                {
                    min = element;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static decimal Min(this IEnumerable<decimal> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = decimal.MaxValue;
            foreach (var element in source)
            {
                if (element < min)
                {
                    min = element;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static int? Min(this IEnumerable<int?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = int.MaxValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            return null;
        }

        public static long? Min(this IEnumerable<long?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = long.MaxValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            return null;
        }

        public static double? Min(this IEnumerable<double?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = double.MaxValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (double.IsNaN(value))
                {
                    return value;
                }

                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            return null;
        }

        public static float? Min(this IEnumerable<float?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = float.MaxValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (float.IsNaN(value))
                {
                    return value;
                }

                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            return null;
        }

        public static decimal? Min(this IEnumerable<decimal?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var found = false;
            var min = decimal.MaxValue;
            foreach (var element in source)
            {
                if (!element.HasValue)
                {
                    continue;
                }

                var value = element.Value;
                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            return null;
        }

        public static TSource Min<TSource>(this IEnumerable<TSource> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var comparer = Comparer<TSource>.Default;
            var min = default(TSource)!;
            if (default(TSource)! == null)
            {
                foreach (var element in source)
                {
                    if (element == null)
                    {
                        continue;
                    }

                    if (min == null || comparer.Compare(element, min) < 0)
                    {
                        min = element;
                    }
                }

                return min;
            }

            var found = false;
            foreach (var element in source)
            {
                if (found)
                {
                    if (comparer.Compare(element, min) < 0)
                    {
                        min = element;
                    }
                }
                else
                {
                    min = element;
                    found = true;
                }
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static int Min<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var min = int.MaxValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static long Min<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var min = long.MaxValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static double Min<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var min = double.MaxValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (double.IsNaN(value))
                {
                    return value;
                }

                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static float Min<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var min = float.MaxValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (float.IsNaN(value))
                {
                    return value;
                }

                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static decimal Min<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            var min = decimal.MaxValue;
            foreach (var element in source)
            {
                var value = selector(element);
                if (value < min)
                {
                    min = value;
                }

                found = true;
            }

            if (found)
            {
                return min;
            }

            throw new InvalidOperationException();
        }

        public static int? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            int? min = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (min.HasValue)
                {
                    if (item < min)
                    {
                        min = item;
                    }
                }
                else
                {
                    min = item;
                }

                found = true;
            }

            return found ? min : null;
        }

        public static long? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            long? min = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (min.HasValue)
                {
                    if (item < min)
                    {
                        min = item;
                    }
                }
                else
                {
                    min = item;
                }

                found = true;
            }

            return found ? min : null;
        }

        public static float? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            float? min = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (item == null)
                {
                    continue;
                }

                var value = item.Value;
                if (float.IsNaN(value))
                {
                    return value;
                }

                if (min.HasValue)
                {
                    if (value < min)
                    {
                        min = value;
                    }
                }
                else
                {
                    min = value;
                }

                found = true;
            }

            return found ? min : null;
        }

        public static double? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            double? min = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (item == null)
                {
                    continue;
                }

                var value = item.Value;
                if (double.IsNaN(value))
                {
                    return value;
                }

                if (min.HasValue)
                {
                    if (value < min)
                    {
                        min = value;
                    }
                }
                else
                {
                    min = value;
                }

                found = true;
            }

            return found ? min : null;
        }

        public static decimal? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var found = false;
            decimal? min = null;
            foreach (var element in source)
            {
                var item = selector(element);
                if (min.HasValue)
                {
                    if (item < min)
                    {
                        min = item;
                    }
                }
                else
                {
                    min = item;
                }

                found = true;
            }

            return found ? min : null;
        }

        public static TResult Min<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            TResult ClosureSelector(TSource item, int _)
            {
                return selector(item);
            }

            return Min
            (
                SelectExtracted
                (
                    source,
                    ClosureSelector
                )
            );
        }

        public static IEnumerable<int> Range(int start, int count)
        {
            if (count < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(count));
            }

            if ((long)start + count - 1L > int.MaxValue)
            {
                throw new ArgumentOutOfRangeException(nameof(start));
            }

            return RangeExtracted();

            IEnumerable<int> RangeExtracted()
            {
                for (var index = start; count > 0; count--, index++)
                {
                    yield return index;
                }
            }
        }

        public static int Sum(this IEnumerable<int> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var count = 0;
            foreach (var item in source)
            {
                count += item;
            }

            return count;
        }

        public static int Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector)
        {
            return Sum(Select(source, selector));
        }

        public static int? Sum(this IEnumerable<int?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0;
            foreach (var item in source)
            {
                if (item.HasValue)
                {
                    sum += item.GetValueOrDefault();
                }
            }

            return sum;
        }

        public static int? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector)
        {
            return Sum(Select(source, selector));
        }

        public static long Sum(this IEnumerable<long> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0L;
            foreach (var item in source)
            {
                sum += item;
            }

            return sum;
        }

        public static long Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector)
        {
            return Sum(Select(source, selector));
        }

        public static long? Sum(this IEnumerable<long?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0L;
            foreach (var item in source)
            {
                if (item.HasValue)
                {
                    sum += item.GetValueOrDefault();
                }
            }

            return sum;
        }

        public static long? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector)
        {
            return Sum(Select(source, selector));
        }

        public static float Sum(this IEnumerable<float> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0f;
            foreach (var item in source)
            {
                sum += item;
            }

            return sum;
        }

        public static float Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector)
        {
            return Sum(Select(source, selector));
        }

        public static float? Sum(this IEnumerable<float?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0f;
            foreach (var item in source)
            {
                if (item.HasValue)
                {
                    sum += item.GetValueOrDefault();
                }
            }

            return sum;
        }

        public static float? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector)
        {
            return Sum(Select(source, selector));
        }

        public static double Sum(this IEnumerable<double> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0d;
            foreach (var item in source)
            {
                sum += item;
            }

            return sum;
        }

        public static double Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector)
        {
            return Sum(Select(source, selector));
        }

        public static double? Sum(this IEnumerable<double?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            double sum = 0;
            foreach (var item in source)
            {
                if (item.HasValue)
                {
                    sum += item.GetValueOrDefault();
                }
            }

            return sum;
        }

        public static double? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector)
        {
            return Sum(Select(source, selector));
        }

        public static decimal Sum(this IEnumerable<decimal> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0m;
            foreach (var item in source)
            {
                sum += item;
            }

            return sum;
        }

        public static decimal Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector)
        {
            return Sum(Select(source, selector));
        }

        public static decimal? Sum(this IEnumerable<decimal?> source)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            var sum = 0.0m;
            foreach (var item in source)
            {
                if (item.HasValue)
                {
                    sum += item.GetValueOrDefault();
                }
            }

            return sum;
        }

        public static decimal? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector)
        {
            return Sum(Select(source, selector));
        }
    }
}

#endif


text:
Maclaine Diemer is a multimedia music composer. He worked on sound design and composing music for the Rock Band game series, and massively multiplayer online game (MMO) Guild Wars 2.

Early life
Maclaine started playing guitar when he was 12. He enjoyed listening to the classic rock music genre with his parents, namely the Beatles, Jimi Hendrix and Led Zeppelin. During his older years Maclaine enjoyed listening to Van Halen and The Beach Boys.

Maclaine studied music at the Berklee College of Music in Boston, and graduated in 2003.

Career
In June 2008, Maclaine started working as a sound designer and composer at Harmonix Music Systems for 2 years. During this time, he worked on sound design and composing music for many of Harmonix's games. He worked on The Beatles: Rock Band, Rock Band 2, and Rock Band 3. Maclaine left Harmonix in July 2010 to work at ArenaNet.

In July 2010, Maclaine joined the ArenaNet team as a sound designer for the game Guild Wars 2, and later in 2012 he became the company's lead composer for the game. During his time as lead composer, he worked on soundtracks for Guild Wars 2's Living World Season 1, Living World Season 2, Guild Wars 2: Heart Of Thorns, Living World Season 3, Guild Wars 2: Path Of Fire, and Living World Season 4.

In April 2019, Maclaine stepped down as lead composer at ArenaNet to pursue other projects. However, he is still writing music for Guild Wars 2.

In July 2022, Maclaine joined Cyan Worlds as the composer for the adventure game Firmament.

Works

Video Games

 Rock Band 2 (2008)
 The Beatles: Rock Band (2009)
 Rock Band 3 (2010)
 Guild Wars 2 (2012)
 Guild Wars 2: Heart of Thorns (2015)
 Guild Wars 2: Path of Fire (2017)
 Crucible (2020)
 Guild Wars 2: End of Dragons (2022)
 Firmament (2023)

Musical style and influences
Maclaine influences come from a variety of artists and film scores. One of the biggest influences for Maclaine is John Williams in the Star Wars franchise. Other inspirations for Maclaine are Jerry Goldsmith in the Star Trek franchise, Howard Shore in the Lord Of The Rings, and Bernard Herman.

While working on Living World Season 2 for Guild Wars 2, Maclaine wanted to record some of the soundtracks in a live orchestra. He collaborated with Dynamedion to record the music in Berlin, Budapest, and Seattle. The music for the announcement trailer for Guild Wars 2: Heart of Thorns was also composed in a live orchestra.

Legacy
The music that Maclaine and Lena Chappelle composed for Guild Wars 2: Heart of Thorns was played in a live orchestra by The Evergreen Philharmonic Orchestra. The Orchestra involved many students from Issaquah High School, and they played multiple soundtracks featured in Heart of Thorns.

Game Awards

References

External links

 Official website
 SoundCloud profile
 YouTube Music channel

Video game composers
21st-century male musicians
Living people
Year of birth missing (living people)

redpajama_set_name: RedPajamaWikipedia


text:
Q: Javascript arrays: Given array[n], get array[n*m] I'd like to know which would be the best way to solve this problem using javascripts native array methods(map,reduce,etc.).
Given an array of n objects I want to create another array that will contain m objects for each element in the original array. I can do it using common "for" loops to iterate the array but I'd like to know if it can be solved with the native array methods.
Example case:
I have an array with n elements of like "ObjectA":
var objectA = {
       name: "xxx",
       tels: ["yyy","zzz"]
};

I would like to get another array of objects of type "ObjectB":
var objectB = {
       name: "xxx",
       tel: "yyy"
};

So in this case, if the first array contained only objectA, the desired result would be:
[
   {
      name: "xxx",
      tel: "yyy"
   },
   {
      name: "xxx",
      tel: "zzz"
   }
]

I've tried using two nested "map" calls, but the callback function can only return one element.
var array1 = [objectA];

var array2 = array1.map(function(objectA){
   return objectA.tels.map(function(tel){
      return {
                 name : objectA.name,
                 tel : tel
              };
   });
});

Returning another array in the callback, generates an array of arrays and it's not what I want. Array2 result:
[
   [
      {
         name: "xxx",
         tel: "yyy"
      },
      {
         name: "xxx",
         tel: "zzz"
      }
   ]
]

Do I have to use common for loops or is there a native javascript way?

A: Array.prototype.map could not work with array1 root here, because it returns an array of the same length, which is not what you want.
If you want another length you can use Array.prototype.reduce, and then use Array.prototype.map for each object tels.
var array2 = array1.reduce(function (prev, curr) {
    return prev.concat(curr.tels.map(function (tel) {
        return {name: curr.name, tel: tel};
    }));
}, []);

A: You were close with your nested map, however as you noticed when you do that you will get arrays in arrays. To avoid that use forEach and push the results to an array in the inner loop instead:
var result = [];

initialArray.forEach(function(item){
   item.tels.forEach(function(tel){
      result.push({
          name : item.name,
          tel : tel
      });
   });
});

redpajama_set_name: RedPajamaStackExchange


Well, for starters, your site is probably not geared towards natural organic SEO, which is our focus around here. Your website is probably static or very brochure like, and that's not going to cut it.
Your Toronto Business Needs to be found on Google!
Local search is more important than ever. Just a few years ago, the Yellow Pages were still king in local retail markets. That's no longer the case, though; searches for local businesses online now attract more than three times as much attention as any form print directory advertising.
What was once only possible on a computer now happens on a smartphone, like every day. Consumers, business owners, heck everyone is on a mobile device these days. The lines are now blurred when it comes to distinguishing between desktop and mobile. We're all using Google Maps or the like to find local businesses your business needs to be found.
Online Review have become super vital in todays marketplace, and bad news travels very fast, so ensure you're on your A-Game when it comes to online reputation. Encourage customers to write those reviews!
If you need help becoming more visible to search engines, contact silentblast today. We will work with you to create a plan based on your business, industry, and long-term goals.


text:
Reviews Are In: What Watchdogs Say About The New State Budget
June 16, 2017 | by Ben Brachfeld & Jynn Schubert
(photo: The Governor's Office)
A new state budget was passed in April in typical Albany fashion: with almost no time for public scrutiny of the bills or proper review by the legislators who quickly voted them through. Since the $153.1 billion budget was passed, watchdogs both in and out of government have released analyses, helping to better inform citizens and increase accountability.
The budget was adopted a little over a week into the new fiscal year, which begins April 1, after compromises were reached among legislative leaders and Governor Andrew Cuomo on contentious issues such as raising the age of adult criminal responsibility, education aid, a college tuition affordability program, the allocation of large sums of affordable housing monies, and more. The frantic and secretive nature of state budget adoption leaves a lot to digest afterward.
Now, about two months after the budget was passed, those analyses by watchdogs can bring to light a few common themes and several other key points.
Aside from general criticism of the process itself, there are the issues of the large lump sum appropriations, projects funded by mysterious sources, and the governor faulty marketing of his budgetary discipline.
Comptroller Tom DiNapoli
State Comptroller Tom DiNapoli released a report on the state budget that includes critiques of the budgeting process and the end result. The budget continues to rely heavily on appropriations from the federal government, at almost a third of state revenue, despite the unpredictability of state aid from Washington, D.C. under President Donald Trump and the Republican Congress.
"Although the budget came together more than a week into the fiscal year, the Legislature and Executive acted on critical budget issues that will help New York move forward," DiNapoli said in a statement. "However, billions of dollars in spending lacks key details that would better inform the public about how their tax dollars are being spent."
The Comptroller's report included a lengthy chart showing the legislature's inaction on ethics reform, criticizing the fact that, among other things, the budget "intentionally omits" measures such as requiring advisory opinions on legislators' outside income, closing the LLC loophole in corporate political contributions, and extending the Freedom of Information Law (FOIL) to cover the Legislature. The Comptroller was equally pointed on the state's procurement practices, which have come under fire due to rampant corruption in the state's contracting process, stating that the changes were needed to "ensure spending accountability and transparency" in a statement. A measure to authorize the IG to investigate criminal wrongdoing in the state's procurements was intentionally omitted.
The Comptroller was critical of the quickness of the process, essentially disallowing public review. Also criticized was the prevalence of lump sum appropriations, which can make state money harder to track.
"It should concern all New Yorkers that budget decisions in Washington may force tough fiscal choices for the state and raise new questions for local governments and nonprofits that rely on state funding," DiNapoli said. "Federal actions that could adversely affect New York, as well as economic uncertainty, are key risks to this budget."
In a statement on the day the budget was adopted, CBC President Carol Kellermann said "achieving a fiscally sound budget is more important than an 'on time' budget," referring to the emergency budget extender passed when negotiating parties couldn't reach a deal on time. Still, CBC expressed dismay that the state budget was neither on-time nor fiscally sound.
In a later report, CBC also criticized Governor Cuomo for misleadingly saying that the adopted budget continued his "record of holding State Operating Funds spending annual growth to no more than 2 percent." In reality, CBC explained, spending growth is closer to 3.7%, well above the 2% benchmark that Cuomo prides himself on. The budget is able to exploit this loophole by not "adjusting for payment timing differences and accounting changes," such as through premature debt service payments or "shifting expenditures out of state operating funds spending."
CBC has created a "budget navigator" to allow citizens to see how city and state money is being spent.
Empire Center for Public Policy
Empire Center, a conservative think tank based in Albany, has released a slew of criticisms of the budget. Condemnations expressed on the Empire Center blog cover health care spending, certain tax breaks, and the "free" college tuition program. Empire Center is also critical of the added tax deduction for union dues, "effectively a $35 million gratuity for an already privileged caste of (mostly government) workers."
"The positives in New York's FY 2018 budget make up a pretty short list—while the negatives are in some respects worse than usual," wrote E.J. McMahon, Empire Center's founder and research director, in a budget breakdown post on the Center's blog.
McMahon argues for more transparency and accountability with the Water Infrastructure Improvement Act, which he says "used to be put before voters in New York." Now that doing so is no longer a requirement, McMahon writes, "the governor and Legislature obviously figure, why bother?"
Citizens Union
Citizens Union identifies the budget's large non-specific lump sum funding in its "Spending in the Shadows" report. The watchdog identified nearly $13 billion in the budget in nonspecific funding: around $3 billion "subject to decisions of one or more particular elected officials," and nearly $10 billion "in approximately 40 different economic development and infrastructure pots listing no official with spending authority." The group also found that there was "inadequate reporting as to how these funds are eventually spent."
Citizens Union calls on the governor and Legislature to publicly identify all nonspecific funding and to publicly disclose information, such as purposes and the requester, regarding these funds, especially ahead of spending, not afterward as is often the case. Further, the organization calls for amending state finance law to introduce accountability and conflict-of-interest identification to public contracting, the disclosure of grants and contracts "awarded under nonspecific lump sum appropriations and reappropriations," and for "aging the budget bills for three days."
Reinvent Albany
Reinvent Albany has focused largely on procurement reform, which has become a major point of contention, particularly after the Buffalo Billion corruption scandal broke. Along with other watchdog groups, Reinvent Albany issued a release in May calling for "five clean contracting reforms," all of which failed to make it into the budget:
1. Require competitive and transparent contracting for the award of state funds by all state agencies, authorities, and affiliates. Use existing agency procurement guidelines as a uniform minimum standard.
2. Transfer responsibility for awarding all economic development awards to Empire State Development Corporation (ESDC) and end awards by state non-profits and SUNY.
3. Empower the Comptroller to review and approve all state contracts over $250,000.
4. Prohibit state authorities, state corporations, and state non-profits from doing business with their board members.
5. Create a 'Database of Deals' that allows the public to see the total value of all forms of subsidies awarded to a business – as six states have done.
The groups have continued to call for such reforms, but legislative leaders have been hesitant to challenge Cuomo, who is opposed.
New York Public Interest Research Group
NYPIRG also criticized the opacity of the state budget process, which notorious for taking place largely behind closed doors, especially in terms of the final, major deals reached, with the infamous "Three Men in a Room" process determining what stays and what goes -- largely without public input. (There's been a fourth man in the room of late given the addition of IDC Leader Jeff Klein along with the governor, Assembly speaker and Senate majority leader.)
"The process by which these decisions were made was awful and arguably worse than in the recent past," said the organization in a statement shortly after the budget's passage. "Virtually all the deliberations in developing the budget were conducted behind closed doors. There were no hearings, no open meetings, and with the three day legislative review period waived by the governor lawmakers were voting on bills that they had little time to comprehensively review."
by Ben Brachfeld & Jynn Schubert
Tags: Citizens Budget Commission • Citizens Union • State Budget • Tom DiNapoli • NYPIRG • Reinvent Albany • Empire Center

redpajama_set_name: RedPajamaCommonCrawl


Please submit via our Submittable page.
Please allow a maximum of five weeks for a response from either the publisher or one of our editors. From there we promise an attentive and involved relationship with authors, through to publication and beyond.


I used these domes as part of an enclosure to house the electronics for my solar tracker. It worked fantastic. The domes are optically true and give great results.
I ordered a dome after much searching for the right product to suit my needs and ordered one of your which I was hoping would fit my ideals.
It arrived very quickly and is in perfect condition and is exactly what I needed.
I am very pleased and will definitely be ordering more items from you in the future.


text:
Blancpain 50 Fathoms
Brand Reviews
Royal Flush: The Story Of Breguet's Queen Of Naples Watch
Written by Charmian Leong
When it comes to watches worthy of women who wear them, there is one royal who cannot be dethroned.
IT STARTED ROYALLY, OF COURSE
Few brands have been so closely associated with the royals as Breguet. Among its most famous blue-blooded patrons is Caroline Murat, who inspired the Queen of Naples collection.
Murat is generally best known for being the actual Queen of Naples in the early 1800s, as well as the younger sister of Napoleon Bonaparte. But in these parts, she's more clearly remembered for her passion for horology. She has approximately 34 clocks and watches from Breguet alone, making her the biggest Breguet fan in her family. Her first order (as there were no boutiques in those days and watches had to be commissioned directly) was in 1805, when she was just 23 years old.
AND THEN CAME THAT SPECIAL ONE...
One special order on 8 June, 1810 would set in motion the creation of one of the most respected women's collections in the industry almost two centuries later. This watch was to have an ultra-thin, oblong-shaped case equipped with a quarter repeater, thermometer, and mounted on a bracelet made of hair and gold thread. The asking price was 5,000 francs, and was delivered two years later – becoming very likely the first wristwatch ever created.
In the brand's museum in Paris' Place Vendome you will find two service records of Murat's watch. The first was by Countess Rasponi, Murat's youngest daughter, in 1849 and involved fitting it with a new thermometer, polished pivots and an adjusted repeater. The second time was in 1855 and unfortunately, this was the last anyone has heard of it. The original may be lost forever, but its legacy had barely just begun.
...TO HELP WRITE MODERN WATCHMAKING HISTORY
In 2002, under the auspices of the Swatch Group, Breguet launched the Reine de Naples line (below). Made exclusively for women, this collection of ladies' watches tapped on the brand's expertise for complications while remaining positively dazzling. These were watches for women who were looking for a real calibre under the glistering crust.
The egg-shaped case was resurrected with a crown at 4 o'clock and a dial often lavishly decorated with precious stones and materials. For the casual observer, Breguet had simply put out a fancy new ladies' collection to flex its gem-setting muscle. Not so.
"You will never find a Breguet jewellery piece which has nothing to do with the Manufacture's history. When the brand's creations are not dedicated to culture and history (which is rare), they have to do with the art of watchmaking and innovation," says CEO Marc Hayek.
IT'S NOT JUST A 'WOMAN'S WATCH'
This is why you will find moon phases, chimes, power reserve indicators and others in many of these dainty machines. Just look at 2013's Reine de Naples Jour/Nuit (below). The watch actually features two dials, one that is encrusted with diamonds and another that holds a titanium moon on a lapis lazuli disc. As it is a day/night-indicating watch, the sun is also represented - by a golden balance wheel.
Another stunning example is the Sonnerie au Passage, created to celebrate the collection's 200th anniversary in 2012 (below). The watch housed a striking mechanism that had two chimes ringing three times on the hour, which can be disabled with a push piece at 2 o'clock. Chiming watches are notoriously fussy to make under any circumstance, but Breguet managed to do it with half the usual real estate, working around over 500 stones and while disguising the mechanism as a rose garden.
AND NOW THE STORY CONTINUES
Last year's novelty, the Reine de Naples Haute Joaillerie (below), is a glittering display, boasting baguette diamonds on the bezel and case band, brilliant-cut ones on the flange and in the subdial, a single briolette on the crown and a main dial made of Tahitian mother of pearl. Even the bracelet is a sight to behold, with its oval links set with brilliant-cut and baguette diamonds and ruby cabochons. Paired with all 965 stones is a moon phase and power reserve indicator at 12 o'clock.
Even more tellingly, the brand introduced a 'Princesse' version (below) of the Reine de Naples, ostensibly to imbue a sense of contemporary sass and accessibility. Endowed with the unmistakable egg-shaped profile and automatic movement with state-of-the-art silicon escapement, the Reine de Naples Pricesse deliberately dials down on gem-encrusted ostentation while exuding everyday sophistication – a fine and timely evolution if the iconic collection that will appeal to the next generation of women watch lovers. "The top 10 of our bestsellers always includes at least one or two models from the Reine de Naples collection," says Hayek.
Last modified on Monday, 14 March 2016 12:48
Published in Breguet Articles
Tagged under breguet
Charmian Leong
After seven years as a full-time scribe, four of them spent writing about luxury timepieces, Charmian has gone the way of the freelancer and is now fascinated by a different facet of time: having it. When not labouring over a story with a martini in hand, she plays video games and takes naps in 8-bit.
Latest from Charmian Leong
Five Things To Know About The Citizen Eco-Drive
Which Corum Lady Are You?
Bulgari Serpenti: Four Things To Know
Omega Speedmaster: Four Of The Best
TAG Heuer Autavia Jack Heuer: Singapore Price And Review
Only Watch 2019: Breguet Type 20 Pilot Chronograph
Breguet's Tourbillon Day Is A Thing
Time To Move Breguet - Our Top Picks
Chinese New Year 2019: Huat Colours To Wear
Breguet Tradition: Three Things To Know
Breguet Classique Extra-Plate 5157: Singapore Price And Review
More in this category: Pre-BaselWorld 2016: Breguet Watch Of The Day: Breguet Classique 7147
Thanks for signing up! Please check your email to confirm your newsletter subscription.
Stay up to date with CROWN.
It seems that you have already subscribed to this list. Click here to update your profile.
BLLNR.com
BLLNR.sg
CROWN - Singapore
CROWN - Malaysia
CROWN - Vietnam
CROWN - Indonesia
How to Redeem your Digital Subscription


Imagination Playground is a boutique playground opened in 2009 designed by the Rockwell Group. It is an interesting mixture of informal play elements, nature play, adventure play and fixed play. Designed loosely around a nautical theme near the South Street Seaport.
This is the closest NYC, (or any other US city except for Irvine and Huntington Beach both in Southern California) gets to an Adventure Playground and the ethos of Free Play. It has moving play elements in it - large blue plastic shapes that are brought out in the morning to allow a form of free play. There is a play hut and a play worker onsite. There are more secluded areas where small tents and shacks can be built using pieces of canvas and a circular timber platform creates an open informal play area.


text:
Ghanaian singer boasts about women not turning down his proposal
Being a celebrity comes with its perks and for Ghanaian singer, Kuami Eugene, he has been able to win over the ladies since he became famous.
In a recent interview with Luv FM, the young singer revealed that no single lady has rejected his proposal since he became famous and he seems to be enjoying every inch of the attention he is getting.
Kuami is gradually making his mark in the music industry and has been featured in some songs withe Nigeria's superstars, Davido and Mayorkun. However, life has not always been this pleasant for the singer. He revealed that when he had to struggle to get women's attention before he found the limelight.
However, things are different now that he is a superstar as the ladies rush him. More so, since he became a celebrity, no lady has turned down his proposal and life seems to be amazing for the young man.
With almost 500,000 followers on social media, Eugene, is the man of the moment and the ladies are here for it.
Meanwhile, The romantic singer showed up at her doorstep as a delivery guy and put a huge smile on her face.
Did you know? NAIJ.com (naija.ng) is now-> Legit.ng We have updated to serve you better.
Street GIST: Biggest Cause of Misunderstanding in Relationship on Legit TV:


Here are the nominations for the I Love Student Radio Awards supported by Communicorp UK. This longlist has been passed to a panel of industry professionals for judging, and the winners will be announced at the ILSR Awards ceremony held during the National Student Radio Conference 2019 in Swansea.
That's it for this year! Want to join in the celebrations in Swansea and be the first to find our our winners and runners-up? Non-accommodated tickets to #SRACon 2019 are on sale until 27 March 2019.


Homeowners trust the Kitchens By Hastings name to deliver expertise and craftsmanship in kitchen remodeling. That's why we carry and install luxury appliances by Wolf and Sub Zero, as well as kitchen fixtures by Kohler and Franke. These companies have a reputation for distinction. We trust them to carry on our tradition of quality.
Wine storage, minibar and under-counter refrigeration additions sure to add opulence and convenience to any room of your house.
Built in models and ranges with gas, electric and duel capabilities. These offer flexible design options, convenience and complete control. Features of the gas cook tops include a "true simmer setting" and burners that relight automatically if extinguished.
Induction cook tops, which are fast and energy efficient.
Integrated modules that offer energy options for both gas and electric.
Ventilation options which exemplify utilitarian beauty, offering halogen lighting and fans to remove smoke and odors, while remaining easy to clean.
Wolf also offers microwaves, warming draws and grills because the details make all the difference.
Your new kitchen deserves fixtures that add to its beauty and custom design. Nothing says "style" like the Kohler and Franke brands.
Sinks and faucets with your professional, entertainment and everyday needs in mind.
Their "Caviar" models are unique because of the soft, textural, warm-gray look that hides water spots and lends elegance to your kitchen when paired with stainless steel and granite!
Combine form with function to produce eye catching designs that are both durable and versatile.
Their sculpted sinks are made of stainless steel or fire clay ceramic and come in many shapes and sizes.
Their faucets, which boast solid brass construction, can be ordered in a spectrum of colors and finishes.
If your project needs another brand to create the look that you want, we are happy to accommodate any need you may have. Kitchens By Hastings will install the right appliances and fixtures to create your custom kitchen look.


text:
Ya Libnan
on Wednesday, Netanyahu was clinging to a one-seat majority in parliament and one of his main right-wing rivals was also threatening to pull out of the coalition.
Education Minister Naftali Bennett of the far-right Jewish Home party was demanding to be given the defence portfolio or he would withdraw his eight seats from Netanyahu's governing coalition.
Another key coalition partner, Finance Minister Moshe Kahlon of centre-right Kulanu, reportedly told Netanyahu elections should be called as soon as possible because a stable government was needed to keep the economy on track.
Netanyahu was meanwhile seeking to contain the political fallout of his decision to accept a ceasefire deal on Tuesday that ended the worst escalation between Israel and Palestinian militants in Gazasince a 2014 war.
Lieberman said it was "capitulating to terror" when announcing his resignation and also criticised Netanyahu's recent decision to allow Qatar to send millions of dollars in aid to the blockaded Palestinian enclave.
He formally submitted his resignation on Thursday.
Beyond that, there have been protests calling for tough action against Hamas by Israelis living near the Gaza border whose communities were targeted by barrages of rockets from Gaza this week.
A poll published on Thursday found some 74 percent of respondents were unhappy with Netanyahu's handling of the escalation with Gaza and its Islamist rulers Hamas.
Giving further ammunition to Netanyahu's political critics, Hamas has portrayed the ceasefire and Lieberman's resignation as a victory.
"This government has failed to establish deterrence," Justice Minister Ayelet Shaked, from Bennett's Jewish Home, told army radio on Thursday.
'Mr. Security'
Netanyahu's political popularity is in large part due to his reputation as Israel's "Mr. Security", as he has often been dubbed, and he has defended his decision saying: "Our enemies begged for a ceasefire.
"In times of emergency, when making decisions crucial to security, the public can't always be privy to the considerations that must be hidden from the enemy," he said.
His Likud party has hit back at suggestions he will be forced to call early elections, saying Netanyahu will take over the defence portfolio at least temporarily in addition to the premiership, foreign affairs and health portfolios he already has.
A Likud spokesman said Netanyahu would continue consultations on Thursday aimed at stabilising his coalition.
There has long been speculation that Netanyahu may call elections before they are due in November 2019, particularly with police having recommended charges against him in two corruption probes.
The attorney general is expected to announce in the coming months whether to pursue charges against him, and some analysts believe he would be better positioned to combat them with a fresh electoral mandate.
But Netanyahu would want to make the move at the most advantageous time and likely not with public attention focused on the Gaza ceasefire.
Qatari cash
The Gaza violence had erupted on Sunday with a botched Israeli special forces operation inside the territory that turned deadly and prompted Hamas to vow revenge.
Palestinian militants responded with rocket and mortar fire, as well as an anti-tank missile that hit a bus that Hamas says was being used by Israeli soldiers. A soldier was severely wounded in the attack.
Around 460 rockets and mortar rounds were fired from the Gaza Strip, wounding 27 people, three of them severely.
A Palestinian labourer from the occupied West Bank was killed when a rocket hit a building in the Israeli city of Ashkelon.
Israel hit back with widespread air strikes on some 160 targets in the Gaza Strip before the Egyptian-brokered truce took effect on Tuesday. Seven Gazans were killed.
The escalation came despite Netanyahu's decision to allow Qatar to transfer millions of dollars in aid to Gaza for salaries as well as fuel to ease a chronic electricity shortage.
The cash transfers had led to calmer protests along the border after months of deadly unrest.
But they also drew criticism from within Netanyahu's own government, and Lieberman slammed them in announcing his resignation.


text:
Sewerynów – wieś w Polsce położona w województwie mazowieckim, w powiecie sochaczewskim, w gminie Iłów.

W latach 1975–1998 miejscowość należała administracyjnie do województwa płockiego.

Zobacz też
 Sewerynów,  Sewerynówka
 Sewerynowo

Przypisy

Linki zewnętrzne

Iłów (gmina)


text:
Previously at the ICA - AFC, Films
From the Third Eye: Writing Workshop
Join us for this discursive workshop on writing about artists' and experimental film, led by critic and curator Ed Halter, and artist and editor of Little Joe magazine Sam Ashby.
The recently published From the Third Eye: The Evergreen Review Film Reader, edited by Ed Halter and the late Barney Rosset, brings together key texts published between the 1950s and 70s in the influential US cineaste journal Evergreen Review. Taking From the Third Eye as a point of reference for this workshop, Halter and Ashby explore and contrast historical and contemporary case studies, urging the importance of critical writing for today's moving image culture.
Go to Artists' Film Club
Ed Halter is Critic in Residence at Bard College in Annandale-on-Hudson, New York and a founder and director of Light Industry, a venue for film and electronic art in Brooklyn, New York. His publications include From Sun Tzu to Xbox: War and Videogames (2006), Mass Effect: Art and the Internet in the Twenty-First Century (2015) and From the Third Eye: The Evergreen Review Reader (2018). His 20 years of writing on cinema, art and technology has appeared in 4Columns, Artforum, the Village Voice and elsewhere, and he has curated screenings at exhibitions at Anthology Film Archives, the Whitney Museum of American Art, the Walker Art Center, MoMA PS1 and Artists Space.
Sam Ashby is a British artist, graphic designer and publisher. Since 2010, he has collaborated with writers, academics and artists on his publication Little Joe, 'a magazine about queers and cinema, mostly.' He continues to work as a film poster designer, creating award-winning artwork for independent and arthouse films for the UK and international markets. His first film, The Colour of His Hair (2017) premiered at International Film Festival Rotterdam and won the Best Documentary prize at London Short Film Festival.
Evergreen Review, No. 56, July 1968
Part of: Artists' Film Club
Ghislaine Leung Selects Jeff Preiss' STOP
Provisional Presents and Speculative Futures
Laura O'Neill


Georgina wearing Top- The Animals Observatory @ Alex and Alexa, Trousers – Moschino Kid @ Childrensalon.com, Shoes – Zara kids.
Georgina wearing Dress- Vivetta @ Alex and Alexa, Bumbag & Shoes- Zara kids.
Lillyana wearing Shirt – Vivette @ Alex and Alexa, Knit Vest – Tinycottons @ Alex and Alexa, Shorts – Little Marc Jacobs @ Childrensalon.com, Shoes – Zara Kids.
Lillyana wearing Glasses- Claire's Accessories, Coat- Stella McCartney Kids @ Alex and Alexa. Trousers – Zara Kids.
Georgina wearing Cardigan- The Animals Observatory @ Alex and Alexa. Sunglasses – Stella McCartney Kids @ Alex and Alexa, Skirt & Shoes – Zara Kids.
Lillyana wearing Sweater – Louis Louise, Bag – Young Versace @ Childrensalon. com, Skirt – Relish @ Alex and Alexa, Trainers – Zara Kids.
Georgina wearing Sweater- No Added Sugar @ Alex and Alexa.
Georgina wearing Cardigan- The Animals Observatory @ Alex and Alexa, Top, Skirt & Shoes – Zara Kids.
This entry was posted in Hooligans Spectrum and tagged hooligans, hooligans magazine, hooligans spectrum, Salon Rebellion.


text:
French Centre for Research on Contemporary China
Researchers by status
CEFC Researchers
Associate Researchers
PhD Candidates & Fellows
Former Researchers
Defended dissertations
Researchers by topic
Press Highlights
Jobs and scholarships
China perspectives
Format of articles
Databases and rankings
Partners' events
Home » Issues » China Perspectives No. 51 » Ming K. Chan et Alvin Y. So eds.,...
Ming K. Chan et Alvin Y. So eds., Crisis and Transformation in China's Hong Kong
The handover of Hong Kong to China continues to attract much
attention. Politically, the experiment with the "one country, two systems"
arrangement affects the well-being of close to seven million Hong Kong people
and its outcome influences the prospect of China's unification with Taiwan.
Academically, the experiment provides the context for the study of governance
and legitimacy, economic development, cultural identity, among other topics.
The volume edited by Ming K. Chan and Alvin Y. So is one of
the books that have been published in the last few years to address issues concerning
post-1997 Hong Kong. It contains 15 informative and cogently argued essays, most
of which were first presented at the Hong Kong University of Science and Technology
in December 2000. The authors have diverse disciplinary backgrounds, including
economics, history, journalism, legal studies, political science, sociology and
urban planning. Some authors have relied on survey data, but most have utilised
primary and secondary documents to write up their analyses.
The book has three major parts, with three chapters addressing
broadly economic issues, four on culture and the media, and six dealing with political-institutional
matters. Among the three economic essays, two argue that the Basic Law and Hong
Kong's prevailing legal framework have bound the hands of the government
in intervening into the financial market, introducing changes in disclosure practices
and taxation, as well as modifying the land use policies. The legal approach to
economic matters is fresh and the arguments promising. The chapters on cultural
matters have laid bare the political and economic demands made of the media and
institutes of higher education, the distorted debates on and unsatisfactory solutions
to the language policy, as well as the tension-ridden attempt to craft a new cultural
identity for Hong Kong. These issues have often been overshadowed in the discussion
of post-transition politics; that the essays have brought out so capably their
significance is highly satisfying. Finally, the chapters on political-institutional
matters have analysed the election outcomes, civil service reforms before and
after 1997, constitutional positioning of major politico-legal institutions, realignments
within the democratic camp, as well the emergence of partisan politics. The essays
have detailed the tensions, cleavages and reorganisation in the political-institutional
domain and, together, generated insights into the multifarious crises that have
inflicted Hong Kong since the handover.
Compared with similar works, such as Hong Kong in Transition,
edited by Robert Ash and al. (2003), The First Tung Chee-hwa Administration,
edited by Lau Siu-kai (2002), and Political Development in the HKSAR edited
by Joseph Y. S. Cheng (2001), the present volume has little to say about the financial
market, economic integration with China, and has nothing on welfare and health
policies. However, it excels in the detailed account of oppositional politics,
nuance analysis of cultural issues, and fresh examination of economic matters.
The essays do not have a unitary viewpoint. The editors, however,
have put forth the provocative argument that Hong Kong has encountered five crises,
handled them with five transformations, and moved toward what they call soft authoritarian
developmentalism. Specifically, post-1997 Hong Kong has undergone democracy crisis,
constitutional crisis, governability crisis, developmental crisis and legitimacy
crisis. The internal division and weakening of the Democratic Party have alleviated
the democracy crisis and the constitutional crisis has been resolved as the Court
of Final Appeal back off from defending Hong Kong autonomy. The government's
attempt to introduce political accountability has helped to contain the governability
crisis; its belated experiment with developmentalism represents an effort to tackle
the economic crisis, whereas its restraint in deploying oppression has toned down
the legitimacy crisis. The outcome of all these has been to concentrate power
into the hands of the Chief Executive.
Alvin Y. So and Ming K. Chan's effort to present a panoramic
overview of Hong Kong's post-1997 situation is admirable. However, they
appear to have overestimated the steadiness of the so-called soft authoritarian
developmentalism and the enormity of the Chief Executive's power. First,
they have paid surprisingly little attention to the political and legal institutions.
So long as the civil service and the legal institutions remain intact, they continue
to contain the move towards authoritarianism. Second, the five crises have been
alleviated only because the circumstances have required all parties to compromise.
Had the circumstances been changed or the actors chosen otherwise, the delicate
balance would have been disrupted. Indeed, social and political groups in Hong
Kong have emerged and realigned during the twenty years since Sino-British negotiations
began. As Susanne Pepper has argued in her chapter, the post-1997 effort to pluralise
political cleavages and weaken the opposition has also weakened the political
institutions' ability to articulate and channel public opinions. The tensions
thus built up have led to mass frustration and cynicism on the one hand and mass
protest that erupted on July 1, 2003 on the other hand. The crises have neither
been fully resolved nor the Hong Kong society thoroughly transformed into "soft
authoritarian developmentalism".
CEFC Newsletter
I want to subscribe to your newsletter
Hong Kong - Seminar and conferences
Taipei - Seminar and conferences
Beijing - Seminar and conferences
Guest Editors' Guide
Partners' events
20/F Wanchai Central Building 89 Lockhart Road Wanchai Hong Kong
Tel.: +852 2876 6910
Room B110, Research Center For Humanities and Social Sciences, Academia Sinica, Taipei 11529, Taiwan
Tel.: (886-2) 2789-0873
Fax: (886-2) 2789-0874
CFC - Beijing
© 2018 CEFC, Powered by Wordpress