text:
package com.github.anba.es6draft.runtime.objects.date;

import static com.github.anba.es6draft.runtime.AbstractOperations.*;
import static com.github.anba.es6draft.runtime.internal.Errors.newRangeError;
import static com.github.anba.es6draft.runtime.internal.Errors.newTypeError;
import static com.github.anba.es6draft.runtime.internal.Properties.createProperties;
import static com.github.anba.es6draft.runtime.objects.date.DateAbstractOperations.*;
import static com.github.anba.es6draft.runtime.objects.intl.DateTimeFormatConstructor.FormatDateTime;
import static com.github.anba.es6draft.runtime.objects.intl.DateTimeFormatConstructor.ToDateTimeOptions;
import static com.github.anba.es6draft.runtime.types.Null.NULL;

import java.util.TimeZone;

import com.github.anba.es6draft.runtime.AbstractOperations;
import com.github.anba.es6draft.runtime.AbstractOperations.ToPrimitiveHint;
import com.github.anba.es6draft.runtime.ExecutionContext;
import com.github.anba.es6draft.runtime.Realm;
import com.github.anba.es6draft.runtime.internal.CompatibilityOption;
import com.github.anba.es6draft.runtime.internal.Initializable;
import com.github.anba.es6draft.runtime.internal.Messages;
import com.github.anba.es6draft.runtime.internal.Properties.Attributes;
import com.github.anba.es6draft.runtime.internal.Properties.CompatibilityExtension;
import com.github.anba.es6draft.runtime.internal.Properties.Function;
import com.github.anba.es6draft.runtime.internal.Properties.Optional;
import com.github.anba.es6draft.runtime.internal.Properties.Prototype;
import com.github.anba.es6draft.runtime.internal.Properties.Value;
import com.github.anba.es6draft.runtime.objects.intl.DateTimeFormatConstructor;
import com.github.anba.es6draft.runtime.objects.intl.DateTimeFormatObject;
import com.github.anba.es6draft.runtime.types.BuiltinSymbol;
import com.github.anba.es6draft.runtime.types.Intrinsics;
import com.github.anba.es6draft.runtime.types.ScriptObject;
import com.github.anba.es6draft.runtime.types.Type;
import com.github.anba.es6draft.runtime.types.builtins.OrdinaryObject;

/**
 *
20 Numbers and Dates

 *
20.3 Date Objects

 *

 *
20.3.4 Properties of the Date Prototype Object
 *

 */
public final class DatePrototype extends OrdinaryObject implements Initializable {
    /**
     * Constructs a new Date prototype object.
     *
     * @param realm
     *            the realm object
     */
    public DatePrototype(Realm realm) {
        super(realm);
    }

    @Override
    public void initialize(Realm realm) {
        createProperties(realm, this, Properties.class);
        createProperties(realm, this, AdditionalProperties.class);
    }

    private static boolean isFinite(double d) {
        return !(Double.isNaN(d) || Double.isInfinite(d));
    }

    /**
     * 20.3.4.41.1 Runtime Semantics: TimeString( tv )
     *
     * @param tv
     *            the date-time value
     * @return the time string representation
     */
    public static String TimeString(double tv) {
        /* step 1 */
        /* step 2 */
        assert !Double.isNaN(tv);
        /* steps 3-6 */
        return String.format("%02d:%02d:%02d GMT", (int) HourFromTime(tv), (int) MinFromTime(tv),
                (int) SecFromTime(tv));
    }

    /**
     * 20.3.4.41.2 Runtime Semantics: DateString( tv )
     *
     * @param tv
     *            the date-time value
     * @return the date string representation
     */
    public static String DateString(double tv) {
        /* step 1 */
        /* step 2 */
        assert !Double.isNaN(tv);
        /* step 3 */
        String weekday = WeekDayName(tv);
        /* step 4 */
        String month = MonthNameFromTime(tv);
        /* step 5 */
        int date = (int) DateFromTime(tv);
        /* step 6 */
        int year = (int) YearFromTime(tv);
        /* step 7 */
        if (year < 0) {
            return String.format("%s %s %02d %+05d", weekday, month, date, year);
        }
        return String.format("%s %s %02d %04d", weekday, month, date, year);
    }

    /**
     * 20.3.4.41.3 Runtime Semantics: TimeZoneString( tv )
     *
     * @param realm
     *            the realm instance
     * @param tv
     *            the date-time value
     * @return the time zone string representation
     */
    public static String TimeZoneString(Realm realm, double tv) {
        /* step 1 */
        /* step 2 */
        assert !Double.isNaN(tv);
        /* steps 3-7 */
        long date = (long) tv;
        TimeZone tz = realm.getTimeZone();
        int tzOffset = TimeZoneInfo.getDefault().getOffset(tz, date) / 60000;
        tzOffset = (tzOffset / 60) * 100 + tzOffset % 60;
        String timeZoneDisplayName = TimeZoneInfo.getDefault().getDisplayName(tz, date);
        /* step 8 */
        return String.format("%+05d (%s)", tzOffset, timeZoneDisplayName);
    }

    /**
     * 20.3.4.41.4 Runtime Semantics: ToDateString(tv)
     *
     * @param realm
     *            the realm instance
     * @param tv
     *            the date-time value
     * @return the date-time string representation
     */
    public static String ToDateString(Realm realm, double tv) {
        /* step 1 (not applicable) */
        /* step 2 */
        if (Double.isNaN(tv)) {
            return "Invalid Date";
        }
        /* step 3 */
        double t = LocalTime(realm, tv);
        /* step 4 */
        return DateString(t) + " " + TimeString(t) + TimeZoneString(realm, tv);
    }

    /**
     * 20.3.4 Properties of the Date Prototype Object
     */
    public enum Properties {
        ;

        /**
         * Abstract operation thisTimeValue(value)
         *
         * @param cx
         *            the execution context
         * @param value
         *            the value
         * @param method
         *            the method name
         * @return the date-time value
         */
        private static double thisTimeValue(ExecutionContext cx, Object value, String method) {
            if (value instanceof DateObject) {
                return ((DateObject) value).getDateValue();
            }
            throw newTypeError(cx, Messages.Key.IncompatibleThis, method, Type.of(value).toString());
        }

        @Prototype
        public static final Intrinsics __proto__ = Intrinsics.ObjectPrototype;

        /**
         * 20.3.4.1 Date.prototype.constructor
         */
        @Value(name = "constructor")
        public static final Intrinsics constructor = Intrinsics.Date;

        /**
         * 20.3.4.2 Date.prototype.getDate ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the date of this date object
         */
        @Function(name = "getDate", arity = 0)
        public static Object getDate(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getDate");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return DateFromTime(LocalTime(realm, t));
        }

        /**
         * 20.3.4.3 Date.prototype.getDay ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the week day of this date object
         */
        @Function(name = "getDay", arity = 0)
        public static Object getDay(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getDay");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return WeekDay(LocalTime(realm, t));
        }

        /**
         * 20.3.4.4 Date.prototype.getFullYear ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the full year of this date object
         */
        @Function(name = "getFullYear", arity = 0)
        public static Object getFullYear(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getFullYear");
            /* step 3 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return YearFromTime(LocalTime(realm, t));
        }

        /**
         * 20.3.4.5 Date.prototype.getHours ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the hours of this date object
         */
        @Function(name = "getHours", arity = 0)
        public static Object getHours(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getHours");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return HourFromTime(LocalTime(realm, t));
        }

        /**
         * 20.3.4.6 Date.prototype.getMilliseconds ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the milli-seconds of this date object
         */
        @Function(name = "getMilliseconds", arity = 0)
        public static Object getMilliseconds(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getMilliseconds");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return msFromTime(LocalTime(realm, t));
        }

        /**
         * 20.3.4.7 Date.prototype.getMinutes ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the minutes of this date object
         */
        @Function(name = "getMinutes", arity = 0)
        public static Object getMinutes(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getMinutes");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return MinFromTime(LocalTime(realm, t));
        }

        /**
         * 20.3.4.8 Date.prototype.getMonth ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the month of this date object
         */
        @Function(name = "getMonth", arity = 0)
        public static Object getMonth(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getMonth");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return MonthFromTime(LocalTime(realm, t));
        }

        /**
         * 20.3.4.9 Date.prototype.getSeconds ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the seconds of this date object
         */
        @Function(name = "getSeconds", arity = 0)
        public static Object getSeconds(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getSeconds");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return SecFromTime(LocalTime(realm, t));
        }

        /**
         * 20.3.4.10 Date.prototype.getTime ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the date-time value of this date object
         */
        @Function(name = "getTime", arity = 0)
        public static Object getTime(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            return thisTimeValue(cx, thisValue, "Date.prototype.getTime");
        }

        /**
         * 20.3.4.11 Date.prototype.getTimezoneOffset ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the time zone offset of this date object
         */
        @Function(name = "getTimezoneOffset", arity = 0)
        public static Object getTimezoneOffset(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getTimezoneOffset");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return (t - LocalTime(realm, t)) / msPerMinute;
        }

        /**
         * 20.3.4.12 Date.prototype.getUTCDate ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the date in the UTC time zone
         */
        @Function(name = "getUTCDate", arity = 0)
        public static Object getUTCDate(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCDate");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return DateFromTime(t);
        }

        /**
         * 20.3.4.13 Date.prototype.getUTCDay ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the week day in the UTC time zone
         */
        @Function(name = "getUTCDay", arity = 0)
        public static Object getUTCDay(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCDay");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return WeekDay(t);
        }

        /**
         * 20.3.4.14 Date.prototype.getUTCFullYear ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the full year in the UTC time zone
         */
        @Function(name = "getUTCFullYear", arity = 0)
        public static Object getUTCFullYear(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCFullYear");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return YearFromTime(t);
        }

        /**
         * 20.3.4.15 Date.prototype.getUTCHours ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the hours in the UTC time zone
         */
        @Function(name = "getUTCHours", arity = 0)
        public static Object getUTCHours(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCHours");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return HourFromTime(t);
        }

        /**
         * 20.3.4.16 Date.prototype.getUTCMilliseconds ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the milli-seconds in the UTC time zone
         */
        @Function(name = "getUTCMilliseconds", arity = 0)
        public static Object getUTCMilliseconds(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCMilliseconds");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return msFromTime(t);
        }

        /**
         * 20.3.4.17 Date.prototype.getUTCMinutes ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the minutes in the UTC time zone
         */
        @Function(name = "getUTCMinutes", arity = 0)
        public static Object getUTCMinutes(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCMinutes");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return MinFromTime(t);
        }

        /**
         * 20.3.4.18 Date.prototype.getUTCMonth ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the month in the UTC time zone
         */
        @Function(name = "getUTCMonth", arity = 0)
        public static Object getUTCMonth(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCMonth");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return MonthFromTime(t);
        }

        /**
         * 20.3.4.19 Date.prototype.getUTCSeconds ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the seconds in the UTC time zone
         */
        @Function(name = "getUTCSeconds", arity = 0)
        public static Object getUTCSeconds(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getUTCSeconds");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return SecFromTime(t);
        }

        /**
         * 20.3.4.20 Date.prototype.setDate (date)
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param date
         *            the new date value
         * @return the new date-time value
         */
        @Function(name = "setDate", arity = 1)
        public static Object setDate(ExecutionContext cx, Object thisValue, Object date) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = LocalTime(realm, thisTimeValue(cx, thisValue, "Date.prototype.setDate"));
            /* step 2 */
            double dt = ToNumber(cx, date);
            /* step 3 */
            double newDate = MakeDate(MakeDay(YearFromTime(t), MonthFromTime(t), dt), TimeWithinDay(t));
            /* step 4 */
            double u = TimeClip(UTC(realm, newDate));
            /* step 5 */
            ((DateObject) thisValue).setDateValue(u);
            /* step 6 */
            return u;
        }

        /**
         * 20.3.4.21 Date.prototype.setFullYear (year [, month [, date ] ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param year
         *            the new year value
         * @param month
         *            the new month value
         * @param date
         *            the new date value
         * @return the new date-time value
         */
        @Function(name = "setFullYear", arity = 3)
        public static Object setFullYear(ExecutionContext cx, Object thisValue, Object year,
                @Optional(Optional.Default.NONE) Object month, @Optional(Optional.Default.NONE) Object date) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setFullYear");
            /* step 2 */
            t = Double.isNaN(t) ? +0 : LocalTime(realm, t);
            /* step 3 */
            double y = ToNumber(cx, year);
            /* step 4 */
            double m = (month == null ? MonthFromTime(t) : ToNumber(cx, month));
            /* step 5 */
            double dt = (date == null ? DateFromTime(t) : ToNumber(cx, date));
            /* step 6 */
            double newDate = MakeDate(MakeDay(y, m, dt), TimeWithinDay(t));
            /* step 7 */
            double u = TimeClip(UTC(realm, newDate));
            /* step 8 */
            ((DateObject) thisValue).setDateValue(u);
            /* step 9 */
            return u;
        }

        /**
         * 20.3.4.22 Date.prototype.setHours (hour [, min [, sec [, ms ] ] ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param hour
         *            the new hours value
         * @param min
         *            the new minutes value
         * @param sec
         *            the new seconds value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setHours", arity = 4)
        public static Object setHours(ExecutionContext cx, Object thisValue, Object hour,
                @Optional(Optional.Default.NONE) Object min, @Optional(Optional.Default.NONE) Object sec,
                @Optional(Optional.Default.NONE) Object ms) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = LocalTime(realm, thisTimeValue(cx, thisValue, "Date.prototype.setHours"));
            /* step 2 */
            double h = ToNumber(cx, hour);
            /* step 3 */
            double m = (min == null ? MinFromTime(t) : ToNumber(cx, min));
            /* step 4 */
            double s = (sec == null ? SecFromTime(t) : ToNumber(cx, sec));
            /* step 5 */
            double milli = (ms == null ? msFromTime(t) : ToNumber(cx, ms));
            /* step 6 */
            double date = MakeDate(Day(t), MakeTime(h, m, s, milli));
            /* step 7 */
            double u = TimeClip(UTC(realm, date));
            /* step 8 */
            ((DateObject) thisValue).setDateValue(u);
            /* step 9 */
            return u;
        }

        /**
         * 20.3.4.23 Date.prototype.setMilliseconds (ms)
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setMilliseconds", arity = 1)
        public static Object setMilliseconds(ExecutionContext cx, Object thisValue, Object ms) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = LocalTime(realm, thisTimeValue(cx, thisValue, "Date.prototype.setMilliseconds"));
            /* step 2 */
            double milli = ToNumber(cx, ms);
            /* step 3 */
            double time = MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), milli);
            /* step 4 */
            double u = TimeClip(UTC(realm, MakeDate(Day(t), time)));
            /* step 5 */
            ((DateObject) thisValue).setDateValue(u);
            /* step 6 */
            return u;
        }

        /**
         * 20.3.4.24 Date.prototype.setMinutes (min [, sec [, ms ] ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param min
         *            the new minutes value
         * @param sec
         *            the new seconds value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setMinutes", arity = 3)
        public static Object setMinutes(ExecutionContext cx, Object thisValue, Object min,
                @Optional(Optional.Default.NONE) Object sec, @Optional(Optional.Default.NONE) Object ms) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = LocalTime(realm, thisTimeValue(cx, thisValue, "Date.prototype.setMinutes"));
            /* step 2 */
            double m = ToNumber(cx, min);
            /* step 3 */
            double s = (sec == null ? SecFromTime(t) : ToNumber(cx, sec));
            /* step 4 */
            double milli = (ms == null ? msFromTime(t) : ToNumber(cx, ms));
            /* step 5 */
            double date = MakeDate(Day(t), MakeTime(HourFromTime(t), m, s, milli));
            /* step 6 */
            double u = TimeClip(UTC(realm, date));
            /* step 7 */
            ((DateObject) thisValue).setDateValue(u);
            /* step 8 */
            return u;
        }

        /**
         * 20.3.4.25 Date.prototype.setMonth (month [, date ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param month
         *            the new month value
         * @param date
         *            the new date value
         * @return the new date-time value
         */
        @Function(name = "setMonth", arity = 2)
        public static Object setMonth(ExecutionContext cx, Object thisValue, Object month,
                @Optional(Optional.Default.NONE) Object date) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = LocalTime(realm, thisTimeValue(cx, thisValue, "Date.prototype.setMonth"));
            /* step 2 */
            double m = ToNumber(cx, month);
            /* step 3 */
            double dt = (date == null ? DateFromTime(t) : ToNumber(cx, date));
            /* step 4 */
            double newDate = MakeDate(MakeDay(YearFromTime(t), m, dt), TimeWithinDay(t));
            /* step 5 */
            double u = TimeClip(UTC(realm, newDate));
            /* step 6 */
            ((DateObject) thisValue).setDateValue(u);
            /* step 7 */
            return u;
        }

        /**
         * 20.3.4.26 Date.prototype.setSeconds (sec [, ms ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param sec
         *            the new seconds value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setSeconds", arity = 2)
        public static Object setSeconds(ExecutionContext cx, Object thisValue, Object sec,
                @Optional(Optional.Default.NONE) Object ms) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = LocalTime(realm, thisTimeValue(cx, thisValue, "Date.prototype.setSeconds"));
            /* step 2 */
            double s = ToNumber(cx, sec);
            /* step 3 */
            double milli = (ms == null ? msFromTime(t) : ToNumber(cx, ms));
            /* step 4 */
            double date = MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), s, milli));
            /* step 5 */
            double u = TimeClip(UTC(realm, date));
            /* step 6 */
            ((DateObject) thisValue).setDateValue(u);
            /* step 7 */
            return u;
        }

        /**
         * 20.3.4.27 Date.prototype.setTime (time)
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param time
         *            the new time value
         * @return the new date-time value
         */
        @Function(name = "setTime", arity = 1)
        public static Object setTime(ExecutionContext cx, Object thisValue, Object time) {
            /* step 1 */
            thisTimeValue(cx, thisValue, "Date.prototype.setTime");
            /* step 2 */
            double t = ToNumber(cx, time);
            /* step 3 */
            double v = TimeClip(t);
            /* step 4 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 5 */
            return v;
        }

        /**
         * 20.3.4.28 Date.prototype.setUTCDate (date)
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param date
         *            the new date value
         * @return the new date-time value
         */
        @Function(name = "setUTCDate", arity = 1)
        public static Object setUTCDate(ExecutionContext cx, Object thisValue, Object date) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setUTCDate");
            /* step 2 */
            double dt = ToNumber(cx, date);
            /* step 3 */
            double newDate = MakeDate(MakeDay(YearFromTime(t), MonthFromTime(t), dt), TimeWithinDay(t));
            /* step 4 */
            double v = TimeClip(newDate);
            /* step 5 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 6 */
            return v;
        }

        /**
         * 20.3.4.29 Date.prototype.setUTCFullYear (year [, month [, date ] ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param year
         *            the new year value
         * @param month
         *            the new month value
         * @param date
         *            the new date value
         * @return the new date-time value
         */
        @Function(name = "setUTCFullYear", arity = 3)
        public static Object setUTCFullYear(ExecutionContext cx, Object thisValue, Object year,
                @Optional(Optional.Default.NONE) Object month, @Optional(Optional.Default.NONE) Object date) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setUTCFullYear");
            /* step 2 */
            if (Double.isNaN(t)) {
                t = +0;
            }
            /* step 3 */
            double y = ToNumber(cx, year);
            /* step 4 */
            double m = (month == null ? MonthFromTime(t) : ToNumber(cx, month));
            /* step 5 */
            double dt = (date == null ? DateFromTime(t) : ToNumber(cx, date));
            /* step 6 */
            double newDate = MakeDate(MakeDay(y, m, dt), TimeWithinDay(t));
            /* step 7 */
            double v = TimeClip(newDate);
            /* step 8 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 9 */
            return v;
        }

        /**
         * 20.3.4.30 Date.prototype.setUTCHours (hour [, min [, sec [, ms ] ] ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param hour
         *            the new hours value
         * @param min
         *            the new minutes value
         * @param sec
         *            the new seconds value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setUTCHours", arity = 4)
        public static Object setUTCHours(ExecutionContext cx, Object thisValue, Object hour,
                @Optional(Optional.Default.NONE) Object min, @Optional(Optional.Default.NONE) Object sec,
                @Optional(Optional.Default.NONE) Object ms) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setUTCHours");
            /* step 2 */
            double h = ToNumber(cx, hour);
            /* step 3 */
            double m = (min == null ? MinFromTime(t) : ToNumber(cx, min));
            /* step 4 */
            double s = (sec == null ? SecFromTime(t) : ToNumber(cx, sec));
            /* step 5 */
            double milli = (ms == null ? msFromTime(t) : ToNumber(cx, ms));
            /* step 6 */
            double newDate = MakeDate(Day(t), MakeTime(h, m, s, milli));
            /* step 7 */
            double v = TimeClip(newDate);
            /* step 8 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 9 */
            return v;
        }

        /**
         * 20.3.4.31 Date.prototype.setUTCMilliseconds (ms)
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setUTCMilliseconds", arity = 1)
        public static Object setUTCMilliseconds(ExecutionContext cx, Object thisValue, Object ms) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setUTCMilliseconds");
            /* step 2 */
            double milli = ToNumber(cx, ms);
            /* step 3 */
            double time = MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), milli);
            /* step 4 */
            double v = TimeClip(MakeDate(Day(t), time));
            /* step 5 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 6 */
            return v;
        }

        /**
         * 20.3.4.32 Date.prototype.setUTCMinutes (min [, sec [, ms ] ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param min
         *            the new minutes value
         * @param sec
         *            the new seconds value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setUTCMinutes", arity = 3)
        public static Object setUTCMinutes(ExecutionContext cx, Object thisValue, Object min,
                @Optional(Optional.Default.NONE) Object sec, @Optional(Optional.Default.NONE) Object ms) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setUTCMinutes");
            /* step 2 */
            double m = ToNumber(cx, min);
            /* steps 3-4 */
            double s = (sec == null ? SecFromTime(t) : ToNumber(cx, sec));
            /* steps 5-6 */
            double milli = (ms == null ? msFromTime(t) : ToNumber(cx, ms));
            /* step 7 */
            double date = MakeDate(Day(t), MakeTime(HourFromTime(t), m, s, milli));
            /* step 8 */
            double v = TimeClip(date);
            /* step 9 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 10 */
            return v;
        }

        /**
         * 20.3.4.33 Date.prototype.setUTCMonth (month [, date ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param month
         *            the new month value
         * @param date
         *            the new date value
         * @return the new date-time value
         */
        @Function(name = "setUTCMonth", arity = 2)
        public static Object setUTCMonth(ExecutionContext cx, Object thisValue, Object month,
                @Optional(Optional.Default.NONE) Object date) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setUTCMonth");
            /* step 2 */
            double m = ToNumber(cx, month);
            /* steps 3-4 */
            double dt = (date == null ? DateFromTime(t) : ToNumber(cx, date));
            /* step 5 */
            double newDate = MakeDate(MakeDay(YearFromTime(t), m, dt), TimeWithinDay(t));
            /* step 6 */
            double v = TimeClip(newDate);
            /* step 7 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 8 */
            return v;
        }

        /**
         * 20.3.4.34 Date.prototype.setUTCSeconds (sec [, ms ] )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param sec
         *            the new seconds value
         * @param ms
         *            the new milli-seconds value
         * @return the new date-time value
         */
        @Function(name = "setUTCSeconds", arity = 2)
        public static Object setUTCSeconds(ExecutionContext cx, Object thisValue, Object sec,
                @Optional(Optional.Default.NONE) Object ms) {
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setUTCSeconds");
            /* step 2 */
            double s = ToNumber(cx, sec);
            /* steps 3-4 */
            double milli = (ms == null ? msFromTime(t) : ToNumber(cx, ms));
            /* step 5 */
            double date = MakeDate(Day(t), MakeTime(HourFromTime(t), MinFromTime(t), s, milli));
            /* step 6 */
            double v = TimeClip(date);
            /* step 7 */
            ((DateObject) thisValue).setDateValue(v);
            /* step 8 */
            return v;
        }

        /**
         * 20.3.4.35 Date.prototype.toDateString ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the date string representation
         */
        @Function(name = "toDateString", arity = 0)
        public static Object toDateString(ExecutionContext cx, Object thisValue) {
            /* steps 1-2 */
            double tv = thisTimeValue(cx, thisValue, "Date.prototype.toDateString");
            /* step 3 */
            if (Double.isNaN(tv)) {
                return "Invalid Date";
            }
            /* step 4 */
            double t = LocalTime(cx.getRealm(), tv);
            /* step 5 */
            return DateString(t);
        }

        /**
         * 20.3.4.36 Date.prototype.toISOString ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the date-time string in the ISO date-time format
         */
        @Function(name = "toISOString", arity = 0)
        public static Object toISOString(ExecutionContext cx, Object thisValue) {
            double dateValue = thisTimeValue(cx, thisValue, "Date.prototype.toISOString");
            if (!isFinite(dateValue)) {
                throw newRangeError(cx, Messages.Key.InvalidDateValue);
            }

            int year = (int) YearFromTime(dateValue);
            int month = (int) MonthFromTime(dateValue) + 1;
            int date = (int) DateFromTime(dateValue);
            int hour = (int) HourFromTime(dateValue);
            int min = (int) MinFromTime(dateValue);
            int sec = (int) SecFromTime(dateValue);
            int milli = (int) msFromTime(dateValue);

            if (year < 0 || year > 9999) {
                return String.format("%+07d-%02d-%02dT%02d:%02d:%02d.%03dZ", year, month, date, hour, min, sec, milli);
            }
            return String.format("%04d-%02d-%02dT%02d:%02d:%02d.%03dZ", year, month, date, hour, min, sec, milli);
        }

        /**
         * 20.3.4.37 Date.prototype.toJSON ( key )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param key
         *            the key argument (unused)
         * @return the JSON string for this date object
         */
        @Function(name = "toJSON", arity = 1)
        public static Object toJSON(ExecutionContext cx, Object thisValue, Object key) {
            /* step 1 */
            ScriptObject o = ToObject(cx, thisValue);
            /* step 2 */
            Object tv = AbstractOperations.ToPrimitive(cx, o, ToPrimitiveHint.Number);
            /* step 3 */
            if (Type.isNumber(tv) && !isFinite(Type.numberValue(tv))) {
                return NULL;
            }
            /* step 4 */
            return Invoke(cx, o, "toISOString");
        }

        /**
         * 20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )

         * 13.3.2 Date.prototype.toLocaleDateString ([locales [, options ]])
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param locales
         *            the locales array
         * @param options
         *            the options object
         * @return the locale date string representation
         */
        @Function(name = "toLocaleDateString", arity = 0)
        public static Object toLocaleDateString(ExecutionContext cx, Object thisValue, Object locales, Object options) {
            // ECMA-402
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.toLocaleDateString");
            /* step 2 */
            if (Double.isNaN(t)) {
                return "Invalid Date";
            }
            /* step 3 */
            options = ToDateTimeOptions(cx, options, "date", "date");
            /* step 4 */
            DateTimeFormatConstructor ctor = (DateTimeFormatConstructor) cx
                    .getIntrinsic(Intrinsics.Intl_DateTimeFormat);
            DateTimeFormatObject dateTimeFormat = ctor.construct(cx, ctor, locales, options);
            /* step 5 */
            return FormatDateTime(cx, dateTimeFormat, t);
        }

        /**
         * 20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )

         * 13.3.1 Date.prototype.toLocaleString ([locales [, options ]])
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param locales
         *            the locales array
         * @param options
         *            the options object
         * @return the locale string representation
         */
        @Function(name = "toLocaleString", arity = 0)
        public static Object toLocaleString(ExecutionContext cx, Object thisValue, Object locales, Object options) {
            // ECMA-402
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.toLocaleString");
            /* step 2 */
            if (Double.isNaN(t)) {
                return "Invalid Date";
            }
            /* step 3 */
            options = ToDateTimeOptions(cx, options, "any", "all");
            /* step 4 */
            DateTimeFormatConstructor ctor = (DateTimeFormatConstructor) cx
                    .getIntrinsic(Intrinsics.Intl_DateTimeFormat);
            DateTimeFormatObject dateTimeFormat = ctor.construct(cx, ctor, locales, options);
            /* step 5 */
            return FormatDateTime(cx, dateTimeFormat, t);
        }

        /**
         * 20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )

         * 13.3.3 Date.prototype.toLocaleTimeString ([locales [, options ]])
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param locales
         *            the locales array
         * @param options
         *            the options object
         * @return the locale time string representation
         */
        @Function(name = "toLocaleTimeString", arity = 0)
        public static Object toLocaleTimeString(ExecutionContext cx, Object thisValue, Object locales, Object options) {
            // ECMA-402
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.toLocaleTimeString");
            /* step 2 */
            if (Double.isNaN(t)) {
                return "Invalid Date";
            }
            /* step 3 */
            options = ToDateTimeOptions(cx, options, "time", "time");
            /* step 4 */
            DateTimeFormatConstructor ctor = (DateTimeFormatConstructor) cx
                    .getIntrinsic(Intrinsics.Intl_DateTimeFormat);
            DateTimeFormatObject dateTimeFormat = ctor.construct(cx, ctor, locales, options);
            /* step 5 */
            return FormatDateTime(cx, dateTimeFormat, t);
        }

        /**
         * 20.3.4.41 Date.prototype.toString ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the string representation
         */
        @Function(name = "toString", arity = 0)
        public static Object toString(ExecutionContext cx, Object thisValue) {
            /* step 1 */
            double tv = thisTimeValue(cx, thisValue, "Date.prototype.toString");
            /* step 2 */
            return ToDateString(cx.getRealm(), tv);
        }

        /**
         * 20.3.4.42 Date.prototype.toTimeString ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the time string representation
         */
        @Function(name = "toTimeString", arity = 0)
        public static Object toTimeString(ExecutionContext cx, Object thisValue) {
            /* steps 1-2 */
            double tv = thisTimeValue(cx, thisValue, "Date.prototype.toTimeString");
            /* step 3 */
            if (Double.isNaN(tv)) {
                return "Invalid Date";
            }
            /* step 4 */
            double t = LocalTime(cx.getRealm(), tv);
            /* step 5 */
            return TimeString(t) + TimeZoneString(cx.getRealm(), tv);
        }

        /**
         * 20.3.4.43 Date.prototype.toUTCString ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the date-time string in the UTC time zone
         */
        @Function(name = "toUTCString", arity = 0)
        public static Object toUTCString(ExecutionContext cx, Object thisValue) {
            /* steps 1-2 */
            double tv = thisTimeValue(cx, thisValue, "Date.prototype.toUTCString");
            /* step 3 */
            if (Double.isNaN(tv)) {
                return "Invalid Date";
            }
            /* step 4 */
            String weekday = WeekDayName(tv);
            /* step 5 */
            String month = MonthNameFromTime(tv);
            /* step 6 */
            int day = (int) DateFromTime(tv);
            /* step 7 */
            int year = (int) YearFromTime(tv);
            /* step 8 */
            if (year < 0) {
                return String.format("%s, %02d %s %+05d ", weekday, day, month, year) + TimeString(tv);
            }
            return String.format("%s, %02d %s %04d ", weekday, day, month, year) + TimeString(tv);
        }

        /**
         * 20.3.4.44 Date.prototype.valueOf ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the date-time value of this date object
         */
        @Function(name = "valueOf", arity = 0)
        public static Object valueOf(ExecutionContext cx, Object thisValue) {
            return thisTimeValue(cx, thisValue, "Date.prototype.valueOf");
        }

        /**
         * 20.3.4.45 Date.prototype[@@toPrimitive] ( hint )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param hint
         *            the ToPrimitive hint string
         * @return the primitive value for this date object
         */
        @Function(name = "[Symbol.toPrimitive]", arity = 1, symbol = BuiltinSymbol.toPrimitive,
                attributes = @Attributes(writable = false, enumerable = false, configurable = true))
        public static Object toPrimitive(ExecutionContext cx, Object thisValue, Object hint) {
            /* steps 1-2 */
            if (!Type.isObject(thisValue)) {
                throw newTypeError(cx, Messages.Key.NotObjectType);
            }
            /* step 5 */
            if (!Type.isString(hint)) {
                throw newTypeError(cx, Messages.Key.NotString);
            }
            /* steps 3-5 */
            ToPrimitiveHint tryFirst;
            String _hint = Type.stringValue(hint).toString();
            if ("string".equals(_hint) || "default".equals(_hint)) {
                tryFirst = ToPrimitiveHint.String;
            } else if ("number".equals(_hint)) {
                tryFirst = ToPrimitiveHint.Number;
            } else {
                throw newTypeError(cx, Messages.Key.InvalidToPrimitiveHint, _hint);
            }
            /* step 6 */
            return OrdinaryToPrimitive(cx, Type.objectValue(thisValue), tryFirst);
        }
    }

    /**
     * B.2.4 Additional Properties of the Date.prototype Object
     */
    @CompatibilityExtension(CompatibilityOption.DatePrototype)
    public enum AdditionalProperties {
        ;

        /**
         * Abstract operation thisTimeValue(value)
         *
         * @param cx
         *            the execution context
         * @param value
         *            the value
         * @param method
         *            the method name
         * @return the date-time value
         */
        private static double thisTimeValue(ExecutionContext cx, Object value, String method) {
            if (value instanceof DateObject) {
                return ((DateObject) value).getDateValue();
            }
            throw newTypeError(cx, Messages.Key.IncompatibleThis, method, Type.of(value).toString());
        }

        /**
         * B.2.4.1 Date.prototype.getYear ( )
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @return the year of this date object
         */
        @Function(name = "getYear", arity = 0)
        public static Object getYear(ExecutionContext cx, Object thisValue) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.getYear");
            /* step 2 */
            if (Double.isNaN(t)) {
                return Double.NaN;
            }
            /* step 3 */
            return YearFromTime(LocalTime(realm, t)) - 1900;
        }

        /**
         * B.2.4.2 Date.prototype.setYear (year)
         *
         * @param cx
         *            the execution context
         * @param thisValue
         *            the function this-value
         * @param year
         *            the new year value
         * @return the new date-time value
         */
        @Function(name = "setYear", arity = 1)
        public static Object setYear(ExecutionContext cx, Object thisValue, Object year) {
            Realm realm = cx.getRealm();
            /* step 1 */
            double t = thisTimeValue(cx, thisValue, "Date.prototype.setYear");
            /* step 2 */
            t = Double.isNaN(t) ? +0 : LocalTime(realm, t);
            /* step 3 */
            double y = ToNumber(cx, year);
            /* step 4 */
            if (Double.isNaN(y)) {
                ((DateObject) thisValue).setDateValue(Double.NaN);
                return Double.NaN;
            }
            /* steps 5-6 */
            int intYear = (int) y; // ToInteger
            double yyyy = (0 <= intYear && intYear <= 99 ? intYear + 1900 : y);
            /* step 7 */
            double d = MakeDay(yyyy, MonthFromTime(t), DateFromTime(t));
            /* step 8 */
            double date = UTC(realm, MakeDate(d, TimeWithinDay(t)));
            /* step 9 */
            ((DateObject) thisValue).setDateValue(TimeClip(date));
            /* step 10 */
            return ((DateObject) thisValue).getDateValue();
        }

        /**
         * B.2.4.3 Date.prototype.toGMTString ( )
         *
         * @param cx
         *            the execution context
         * @return the date-time string in the UTC time zone
         */
        @Value(name = "toGMTString")
        public static Object toGMTString(ExecutionContext cx) {
            return Get(cx, cx.getIntrinsic(Intrinsics.DatePrototype), "toUTCString");
        }
    }
}

redpajama_set_name: RedPajamaGithub


The waitlist is a listing of people who would like to attend GHC but are not able to register at this time. Those on the waitlist will receive notification as space becomes available. We are no longer taking names for the wait list.
Being on the waitlist does NOT mean that you are registered for GHC. Do not make travel arrangements until you have secured your registration. We will notify people on the waitlist when space is available but until you receive notification and complete the registration process, do not assume you are registered.
If I am on the wait list what are my chances of getting into GHC?
Those on the waitlist have been notified of their status.
Will everyone currently on the wait list get in? How many people are currently on the wait list?
It is unlikely that everyone on the wait list will get in, unfortunately. There are over 1,000 names currently on the wait list.
Why can't AnitaB.org increase the capacity of GHC beyond the 8,000 planned attendees?
Safety, facility, program and logistical considerations make it impossible for us to expand the capacity beyond the 8,000-attendee level. We have worked closely with the Phoenix Convention Center and our event producers to accommodate 8,000, but we are unable to expand beyond that number. While we wish we could accommodate every person who wants to attend, our primary objective is to ensure that all of our attendees have the high quality experience that the Grace Hopper Celebration is known for.
No. There will not be any onsite registration. All attendees must register in advance of the event and receive registration confirmation prior to the start of the event. Submissions to the waitlist are not registrations.
If I would like to come but have not registered what should I do?
GHC 2014 is sold out. At this time we cannot accommodate more people.
Stay tuned for information on livestreaming of the 2014 keynotes and plenaries.
A registration code is a unique code that enables people to register as a GHC attendee. They are different than discount codes which enable people to register at a discount as long as registration spots are available. Registration codes are for speakers, members of the organizing committees, Technical Executive Forum participants, sponsors and GHC scholarship recipients. Registration codes have been distributed. All codes must be redeemed no later than September 19.
Invited guests for special events such as the Technical Executive Forum receive codes to attend the Forum.
Why are discount codes different?
Discount codes are used to provide a special discount such as early bird pricing. They do not guarantee a spot but only offer a discount when registration spots are available.
Can I get a registration code?
If you fall into one of the above categories you should have already received your code. Registration codes are no longer available for purchase.
I am an Academic, Lab or Non-profit sponsor and I have a discount code for students, can I still use it?
You may not use the code to access and purchase new student registrations; however, if someone from your organization is accepted from the waitlist the discount may be applied.
What is the situation with hotels? What do I do if the online booking system does not have availability for the days I need lodging?
We are constantly monitoring the hotel situation and are adding hotels to the online booking system accommodate the demand for space. If you are unable to find rooms please email our housing representative at hsgcoor@visitphoenix.com for assistance in securing a room. If you are with an academic institution and are unable to find the hotel rooms you are looking for, please fill out the academic housing form.
When will all GHC Scholar wait list decisions will be made?
All GHC Scholarship Grant recipients have been announced. If you did not receive a scholarship we encourage you to apply again in January 2015.
When will I know my status for the Hopper volunteer program?
All decisions regarding Hoppers have been announced. Those who have been accepted will receive their assignments at the Hoppers Orientation Meeting on October 8.
If I can no longer attend, may I transfer my registration pass to someone else?
Substitutions are allowed until September 24. To transfer your registration pass to someone else, please log in to your registration, select the option to make a substitution, and fill out the information for the person who is replacing you.


Favignana -- the port town where all boat traffic arrives -- is the island's only town. You'll see the elegant pink Palazzo Florio when you sail into harbor. It was built by the wealthy Florio family in 1876 as a tuna-season residence. The palazzo and gardens are now headquarters of the Egadi Islands Area Marina Protetta (protected marine area), but you can have a peek at the ground floor and courtyard. Patriarch and island benefactor Ignazio Florio (of whom there is a statue in town) was and is beloved by the Favignanesi, while his son Vincenzo, who cared more about automobile racing than tuna fishing and ruined the business, is not quite as well regarded. The other Florio relic on Favignana is the Ex Tonnara Florio, or tuna processing plant and cannery, at water's edge on the west side of the marina. After a long period of decay and abandonment, the plant was restored and reopened to the public as a cultural center. The imposing building, with its noble arches and vaults, is an excellent example of 19th-century industrial archaeology.
Making your way from the port area into the heart of Favignana town, you'll quickly arrive at the main square, Piazza Madrice. This handsome plaza, paved with patinated pietra di Favignana, is lined with lively cafes and a pretty church, the 18th-century Chiesa Matrice. In the evening, everyone on Favignana comes to Piazza Madrice and nearby Piazza Europa for an aperitivo, dinner, or gelato.
West of Favignana town is the island's highest point, Monte Santa Caterina (314m/1,030 ft.), which has an old fortress at its peak. The fort, which was originally a 9th-century pirate watchtower, was enlarged by the Normans in the 12th century and later the Bourbons in the late 1700s. Now a military zone, it is off-limits to the public.
Beyond the roadside walls of eastern Favignana, the ground often plummets down to gaping cavities that were once tufa quarries, odd and wonderful landscapes of sheer walls that bear the score marks of rock-extraction. Many have now been converted into gardens, vineyards, or hotels. In other places, the scars of quarrying are at street or sea level: Once-massive outcrops of tufa are now reduced to evocative adventure-movie sets of trapezoidal cave entrances and lush vegetation. Along the water near Cala Rossa, a sort of Manhattan of tufa-pilaster creates an amazing "skyscraper" effect.


text:
Racist, Anti-Semitic Flyers Found on Princeton Campus
Anne Branigin
Filed to: White SupremacyFiled to: White Supremacy
Racist recruiting at college campuses
racist flyers
racist flyers at college campuses
For the second time this year, white supremacist flyers have appeared at Princeton University. It is unclear who's responsible for posting the flyers, which were spotted on the New Jersey campus Monday, but they came in two varieties: the first, a personal attack against a Jewish resident of the city of Princeton; the second, an advertisement for a fake course at the university called, "Introduction to White Studies: White Guilt and Reparations."
The personal attack, titled "The Truth About 'White Privilege' and Jewish Supremacy," targets Linda Oppenheim. According to Forward, Oppenheim has worked on racial and justice issues in Princeton and has specifically promoted more pathways for racial inclusivity within the Jewish community.
Whoever targeted Oppenheim was familiar with her work and sought to discredit her.
The flyer, which the Daily Princetonian showcases in full, appears as one might expect—littered with grammatical errors and lies, like the claim that 70 percent of the sexual predators who have been exposed in recent weeks are Jewish.
And while your [sic] at it Linda, why don't you tell all your pet negroes about the overwhelming Jewish role in the trans-atlantic slave trade. Also you might want to discuss why Israel is deporting 60,000 black African jews from the Jewish state. Diversity and multi-culturalism is only for America and not the chosen people, Linda?
As the Princetonian notes, the person or people responsible for posting the second poster, advertising the fake Princeton course, appear to be well-acquainted with Princeton-specific academic language and coding.
The fake course advertisement is meant to mock Princeton's liberal sensibilities. In describing the course, the poster states that it's time to "examine the oppressor society, to study Whites the way they have studied colonized people for decades." The flyer lists the course as "YTS 305/WHS 201 (SA)," which is consistent with Princeton's course coding, and lists homework as "Weekly Blackboard Posts and Weekly Reparations." (I mean, it honestly doesn't sound like a terrible course.)
For the past year, racist, anti-immigrant and anti-Semitic flyers have been flooding America's college campuses. Multiple outlets, including the Washington Post, have reported on white supremacist groups' "unprecedented effort" (in the words of the Anti-Defamation League) to recruit on college campus.
In a statement from March of this year, Jonathan Greenblatt, chief executive of the ADL, said that "white supremacists have consciously made the decision to focus their recruitment efforts on students."
While there have been recruitment efforts in the past, Greenblatt noted, "never have we seen anti-Semites and white supremacists so focused on outreach to students on campus."
Read more at Forward and the Daily Princetonian.
A Racist Flyer Might Cost Doug Jones the Election Because the Entire Democratic Party Is Trash
Meet the White Nationalist Fraternity Coming to a College Near You
Staff writer, The Root. Sometimes I blog slow, sometimes I blog quick. Do you have this in coconut?
Recent from Anne Branigin
Trump Says Racist Nonsense Because He Means It and Because He Knows He Can Win on It
Women Rappers Drag Jermaine Dupri By His Nose Hairs After He Alleges They All Sound 'Like Strippers'
Doctor Told to Cover Up Romper on Flight From Jamaica Says American Airlines' Apology Isn't Enough

redpajama_set_name: RedPajamaCommonCrawl


The Bold and the Beautiful showrunner Brad Bell was once quoted as saying he wanted to make his daytime serial more like One Tree Hill. Here's his chance! Wouldn't the defunct teen soap's ex-leading man, James Lafferty, make an inspired choice for fashion scion Thomas Forrester?
Lafferty played swoon-worthy basketball player Nathan Scott for the entire run of OTH (2003-2012). In 2014, he appeared in NBC's short-lived series Crisis. It's about time someone snagged him for a high-profile daytime gig.
B&B's sister soap, The Young and the Restless has had little trouble snagging actors who made their mark in primetime. I don't think it would be a stretch to see Lafferty trade in his Tree Hill Ravens jersey for a snug Armani suit.
In Six Degrees of Soap-eration, Lafferty played opposite Guiding Light alum Bethany Joy Lenz on OTH. Nathan and Haley Scott were the bizness, yo! Do the kids still say that sort of thing?
Would you be up for Lafferty as NuThomas on B&B? Sound off in the comments!
Brian Austin Green Climbing One Tree Hill?
Wishful Casting: Can Young and the Restless and Bold and the Beautiful Play Red Rover?
Brad Bell on Future of Bold and Beautiful: "The Show is Going to Have a Vibe Like One Tree Hill"


This beautifully renovated & furnished high floor apartment offers expansive views of both the intracoastal & the ocean. With the one bedroom apartment beside it also for sale this would be a great opportunity to join the two to make a fabulous apartment. This unique building has hotel amenities during the season which include daily maid service, valet, restaurant, beauty salon, spa, pilates, exercise room & a long term staff to see that you are well taken care of. If you wish you can put your apartment in the rental pool from November 1st to May 1st for a 30% commission. One of the few pet friendly buildings in the area it also has a beautiful wide beach. Located near I-95, airport, theater, shops, restaurants & golf it is the perfect place to come and enjoy your stay in Palm Beach.


The mission of Jeanette Airen Performing Arts Studio is simple, to inspire through the arts to help others realize their full potential and be a positive influence in the community. Jeanette's primary goal is to develop and deliver the highest standard of performing arts education, which provides others with the knowledge and skills they need to be successful in future endeavors. The performing arts curriculum is rooted with a commitment to instill life skills, such as confidence, creativity, communication, collaboration, citizenship and character. In order to accomplish this mission, Jeanette Airen Performing Arts Studio provides intense quality learning and performing opportunities in an atmosphere where students of all ages are encouraged to set goals, take risks and view mistakes as an avenue for learning. Jeanette Airen Performing Arts Studio surrounds students with a staff of professional artists who serve as mentors and teachers, encouraging students to commit to a high level of self-expectation.
Jeanette Airen founded JA Vocal Music in 2006. Originally a vocal studio only, the location was her home studio in Lake Balboa, California. Building and maintaining a regular clientele weekly, Jeanette's popularity as a voice teacher grew quickly.
Major additions were made in 2010 providing JA Vocal Music with a facility in Canoga Park. By 2011, the studios had grown significantly as more instructors were hired to include instrumental and acting lessons.
In July of 2014, Jeanette moved away from the San Fernando Valley and back to her home town of the Conejo Valley. It was at this time that she decided to close the doors of JA Vocal Music. But, she left her students in good hands and her good friends, Electra and Dan, took over the studio re-naming it SoundCheck Music School. This saddened Jeanette but she knew that more exciting adventures were to come in the Conejo Valley. Jeanette Airen Performing Arts Studio continues to grow as students experience the opportunity to perform at community events, showcases and musical theater productions.


Isofol's primary target market for arfolitixorin is the treatment of metastatic colorectal cancer, mCRC, which is a treatment area with a substantial medical need and numerous patients.
The market comprises the treatments with 5-FU currently administered to colorectal patients, and where Isofol's candidate drug, arfolitixorin, can be used to enhance the treatment's efficacy. The primary markets comprise the USA, EU5 (France, Germany, Italy, Spain and the UK), and Japan. In these markets alone, a quarter of a million patients are treated with 5-FU every year for metastatic colorectal cancer. If all colorectal cancer patients treated annually are included, this figure rises by approx. 120,000 in the form of the patients who receive adjuvant therapy with the 5-FU-based treatment combination as a supplementary treatment after surgical intervention in stages I-III, i.e. when the tumour has not yet spread. Arfolitixorin could potentially make an important contribution to increased treatment efficacy for this group too, and could, potentially, result in more patients being completely cured. The company also calculates that there is a substantial global medical need, over and above the quantified markets, primarily in countries such as the rest of Europe, South Korea, and South East Asia, and in other developing countries such as China and India.
Isofol is seeking approval for the treatment of advanced colorectal cancer and is conducting a pivotal study of patients with metastatic forms of the disease (mCRC). There is also considerable potential for expanding the use of arfolitixorin to other types of cancer.
Other treatment areas include the solid tumours currently treated with 5-FU. These include pancreatic and stomach cancers, of which there are over 100,000 new cases every year in the USA and EU5. Other substantial areas of need include breast cancer, cancers of the head and neck, all of which are areas where 5-FU is used.
Arfolitixorin can also be used in rescue therapy after high-dose chemotherapy treatment with Methotrexate of cancer types such as osteosarcoma (bone cancer), acute lymphatic leukaemia (ALL), Burkitt's lymphoma, and lymphomas of the central nervous system (a lymphoma is a cancer of the lymph/lymphatic system). Isofol has already conducted clinical studies of patients with osteosarcoma and considerable potential exists for a future expansion of the use of arfolitixorin into the field of rescue therapy, too.
Isofol currently has a clear and established picture of the number of patients who can potentially be treated with arfolitixorin. Isofol has also, in collaboration with payers and pricing experts in the pharmaceutical sector, conducted a number of surveys in order to build up a picture of possible pricing strategies. Arfolitixorin's market potential, based on the number of patients, anticipated price, and treatment duration, is consequently a multibillion dollar one in the treatment of patients with metastatic colorectal cancer alone. The USA is expected to be the biggest and most important market, followed by the Europa and Japan.
The introduction threshold for arfolitixorin in the treatment of colorectal cancer is adjudged to be low. There would be no need for the medical sector to revise its treatment methods because arfolitixorin does not require any changes to the way in which colorectal cancer patients are currently treated. Arfolitixorin could, therefore, become an integral part of the current 5-FU-based treatment combination. Patient hospitalisation times would not, therefore, increase, and care providers could administer arfolitixorin in combination with 5-FU in the same way as they currently do when treating with leucovorin.
Isofol calculates that the choice of study area – first line treatment of metastatic colorectal cancer – is an area with a particularly high medical need, since the existing treatment alternatives have not been improved since the mid 2000. Arfolitixorin has few competitors in first and second line treatment and is expected to become an integral part of today's standard 5-FU-based treatment. Interest in arfolitixorin and in participating in the pivotal study, AGENT (ISO-CC-007), is considerable amongst both leading Key Opinion Leaders (KOLs) and hospitals as few new drugs are being developed for first and second line treatment of mCRC patients.


Am J Clin Pathol. 2006 Nov;126(5):709-16.
Troxell ML1, Bangs CD, Lawce HJ, Galperin IB, Baiyee D, West RB, Olson SB, Cherry AM.
Department of Pathology, Oregon Health & Science University, Portland, OR 97239, USA.
Accurate assessment of Her-2/neu (erb-b2) status in breast carcinoma is essential for therapy planning. Clinical assays are targeted at protein overexpression (immunohistochemical analysis) or gene amplification (fluorescence in situ hybridization [FISH]). Cases with aberrant FISH signal patterns are problematic and may lead to underreporting of Her-2/neu amplification. We performed FISH with additional chromosome 17 probes, SMS (Smith-Magenis syndrome critical region) and RARA (retinoic acid receptor), on 7 cases with unusual Her-2/CEP17 (chromosome 17 centromere control probe) results to assess whether different measurements of chromosome 17 copy number might clarify the Her-2/neu amplicon status. Although the Her-2/CEP17 ratio scores were within normal range (<2.0), the Her-2/SMS or Her-2/RARA ratio revealed amplification of Her-2/neu in 5 of 7 cases. Immunohistochemical analysis demonstrated Her-2/neu protein overexpression in the same 5 cases only. We describe novel application of SMS/RARA FISH probes for assessing cases with complex Her-2/CEP17 FISH patterns. Such additional data, correlated with immunohistochemical analysis, may help guide therapy in patients with breast carcinoma.


Because gasoline was sold under different contracts with materially different terms, the gasoline was not "of like grade and quality" and price discrimination claims brought by gas stations against the distributor failed.
Physically identical gasoline sold under different contract terms was not "of like grade and quality" and therefore, gas stations' price discrimination claims against a distributor failed, according to the federal district court in Baltimore. The gas stations had entered into 20-year fuel purchase agreements with a "rack-plus" pricing formula (the distributor's cost of the product, also known as the rack cost, plus a mark-up). They sued the distributor, after the distributor negotiated a lower price with the manufacturer but calculated the rack price based on the non-discounted prices the manufacturer charged other distributors instead of its own discounted price. The gas stations alleged price discrimination, but the court rejected their claims. Because the gasoline was sold under different contract terms, it was not "of like grade and quality" even though it was physically identical. The court rejected the arguments that any difference in the fuel costs should have been in their favor. The court also determined that amending the complaint would be futile (Best Effort First Time, LLC v. Southside Oil, LLC, March 29, 2019, Russel, G.).
Background. The Plaintiffs were ten Maryland retail gas stations. In 2009, ExxonMobil agreed to sell the gas stations to Southside Oil, LLC. Southside bought Exxon-branded fuel for resale directly from ExxonMobil under a dealer agreement wherein Southside stepped into the shoes of ExxonMobil as the Plaintiffs' landlord and supplier of fuels. Prior to the deal closing, Plaintiffs instituted lawsuits against ExxonMobil and Southside. The lawsuits were resolved through settlement agreements which included terms permitting the Plaintiffs to purchase the gas stations they had previously leased from ExxonMobil, conditioned on the requirement that the Plaintiffs purchase all fuel from Southside for a twenty-year term and purchase a minimum number of gallons every year. As to the price of the fuel, Plaintiffs and Southside agreed on a "rack plus" pricing formula (essentially, the distributor's cost of the product, also known as the rack cost, plus a mark-up). The agreements provided for a mark-up of 1.5-6.5 cents per gallon.
In 2015, Southside began charging the Plaintiffs a per-gallon price with a higher mark-up (as much as 13 cents). Southside had negotiated an agreement with ExxonMobil wherein ExxonMobil would sell its fuels to Southside at a per gallon price that was "considerably lower" than the price it charged to other distributors. Southside then calculated the rack price based on the non-discounted prices ExxonMobil charged other distributors instead of its own discounted price. As a result, the Plaintiffs had to raise their retail prices above a competitive level and lost business. The Plaintiffs sued Southside, alleging price discrimination under the Robinson-Patman Act of 1936 (RPA).
Price discrimination. Plaintiffs alleged a secondary-line injury, price discrimination that injures competition among the discriminating seller's customers. Southside argued that the claim should fail because the Plaintiffs did not demonstrate that the fuel sold to them was of "like grade and quality" as that sold to other buyers. Southside's argument was that because the gasoline was not purchased on like terms and conditions, the gas itself could not be of like grade or quality, even though it was physically identical. The court stated that the Fourth Circuit has not addressed the standard for determining whether goods sold under different contract terms are of "like grade and quality" for the purposes of the RPA, but then looked to other circuit courts to determine appropriate guidelines. The court concluded that the commodities at issue are physically identical (all are Exxon-branded gasoline/diesel). However, even though the products are physically identical, because they were sold under materially different terms, they are not "of like grade and quality." The court rejected the Plaintiffs' argument that the differences in the contracts—specifically, the Plaintiffs' twenty-year supply contract with "rack plus" pricing versus their competitors' "short-term open-price term contracts"—are not materially different terms, and consequently, do not affect the "grade and quality" of the fuel at issue. Because long-term and short-term, open price contracts are fundamentally different, the products are not of "like grade and quality." The court also rejected the Plaintiffs' argument that because the lower price is not in their favor, there is an RPA violation.
Amendment. The court also concluded that giving the Plaintiffs leave to file a second amended complaint would be futile. The amended complaint essentially argued that the differences between the Plaintiffs contracts with Southside and those of their competitors meant that Southside should have offered them a lower price, not a higher one. The second amended complaint conceded that there were contractual differences that could justify differences in price, but argued that the differences should have been in their favor. But that argument has no basis in antitrust law. The Plaintiffs negotiated price terms and while they may have expected to receive better prices than their competitors, the fact that they did not is not a problem for antitrust law to fix.
This case is No. 1:17-cv-00825-GLR.
Attorneys: Alphonse Michael Alfano (Bassman, Mitchell & Alfano) for Best Effort First Time, LLC, HMA, Inc. and AJ&R Petroleum, Inc. Robert Knight Cox (Williams Mullen PC) for Southside Oil, LLC.


Limited Equity Housing Cooperatives are developed to offer permanently affordable homeownership opportunities for low and moderate income households. The development of these types of cooperatives is often funded with a combination of private and public funds. Share prices in these cooperatives are usually low, and member households may not own more than one share. To further preserve affordability and prevent speculative resale, price restrictions are put on the sale of shares.
California legislation recognizes and regulates limited-equity housing cooperatives. This legislation assures the long-term affordability of shares by limiting share price increases to no more than 10% per year and mandates that any profits from a sale of the entire cooperative be dedicated to public or charitable entities.
Market Rate Housing Cooperatives operate in the private market. In these cooperatives, sometimes referred to as stock cooperatives, individual members of the cooperatives arrange private financing of share purchases. Cooperative members establish Bylaws that may restrict occupancy to homeowners or put restrictions on the rental of units. When a member moves out, the share is sold at its full market value.
Manufactured Home Park Cooperatives are established to provide members with price control, and a voice in the operation, policies, and maintenance of the park. Manufactured homes are owned privately while the land underneath the home and all other facilities are owned by the cooperative. Members co-own the park and the right to occupy a space for their home. Manufactured home park cooperatives can be both market rate or they may establish limited equity limits to maintain affordability.
Senior Housing Cooperatives are designed to meet the needs of members who meet established age restrictions. Units are designed to accommodate potential life changes that can accompany age. Communities may incorporate community rooms, fitness centers, swimming pools, parks – the gambit of options offered at any age-restricted development. They may also include various degrees of graduated care. The advantage of the cooperative model is that it allows members to own their unit, and it incorporates democratic decision making which ensures that seniors have a voice in all aspects of community living.
Northcountry Cooperative Foundation. An applied approach to cooperative housing, covering co-op history, types of housing co-ops, member rights and responsibilities, legal structures, meetings, board officers and policies, committees, and numerous appendices.
Coontz, E. Kim: CCCD. Adapted from Ward and Kennedy, The Business Plan Manual. An overview of the purpose and components of a business plan.
Coontz, E. Kim: CCCD. Adapted from Adams and Hansen, Putting Democracy to Work. A checklist of steps to include in examining the feasibility of the cooperative venture.
North country Cooperative Development Fund. An overview of cooperative housing, including topics like ownership, control, affordability, community, and legal structures.
Mushrush, Paula; Larson, Mark A.; Krause, Jerry D.
Coontz, E. Kim: CCCD. Topics include steps, cooperative principles, phases of co-op development, and elements needed for a successful co-op start-up.
Lessons on Farmworker Ownership and Management California Coalition for Rural Housing. The 2002 publication shares the results of a study that included 11 Farmworker Housing Cooperatives developed in the 1970s and 80s.
What follows is a dated directory originally created in 1999 by UC Center for Cooperatives using responses from a co-op survey. In some cases CCCD updated the information, but generally the listing should be used with caution. Although not identified by type, the list includes many different kinds of housing cooperatives: market rate, limited equity, lease-hold, student co-ops, and manufactured home parks.
Heskin, Allan, and Leavitt, Jacqueline: Stories of the Formation of Housing Cooperatives Part 1.
Heskin, Allan, and Leavitt, Jacqueline: Stories of the Formation of Housing Cooperatives Part 2.
Heskin, Allan, and Leavitt, Jacqueline: Stories of the Formation of Housing Cooperatives Part 3.
Heskin, Allan, and Leavitt, Jacqueline: Stories of the Formation of Housing Cooperatives Part 4.
CHF Canada is the nation-wide umbrella organization for co-op housing and Canada's link with co-op housing around the world.
The California Coalition for Rural Housing (CCRH) is a statewide network of nonprofit housing developers, legal services agencies, public housing California.
The Fellowship for Intentional Community (FIC) is a nonprofit organization dedicated to promoting cooperative culture. "Intentional communities" include ecovillages, cohousing, residential land trusts, income-sharing communes, student co-ops, spiritual communities, and other projects where people live together on the basis of explicit common values.
Global Communities has been offering development assistance to communities since 1952.
The National Association of Housing Cooperatives is a nonprofit national federation of housing cooperatives, mutual housing associations, member associations, other resident-owned or controlled housing, professionals, organizations, and individuals interested in promoting the interests of cooperative housing communities.
In addition to its advocacy work, NPH offers professional training, networking opportunities, and resources for housing policy analysts, advocates and activists.
US/Canada student housing cooperative organization.
Specializing in permanently affordable housing for those who have no access to market rate housing (including those with lower wage jobs, on fixed incomes, or with disabilities).


Photo supplied by Rodrigo Mastrochirico from OLWH site.
The race was held at Stockcar Raceway in Piracicaba - São Paulo.
They have a King Track there, build 2003 which looked fast and from the results also is.
Link to NPRA result page.


Warren Barrios Wilson (January 18, 1921–October 26, 2012) was a successful businessman, civil rights attorney, entrepreneur, philanthropist, author, and community activist. Wilson resided in Oakland for decades, and both he and his wife Joanne Casey renovated the Victorian Legal Center, which were his law offices for over three decades. He was the brother of Mayor Lionel Wilson.
Born in Oakland to Louise Barrios and Jules Wilson, and raised on 32nd and Chestnut Street, Warren Wilson attended University High before going on to graduate from the University of California, Berkeley and the Hastings College of the Law. He was a practicing attorney and member of the California State Bar for over 50 years.
Driven by a strong sense of justice for those less fortunate, earlier in his career as an attorney Wilson set up Educal, a small non-profit organization, to assist ex-offenders and minorities in getting an education and stabilizing their lives.
For 43 years Wilson lead the Thomas Bros. Maps, the renowned street mapping company which. long before Google Street Views, Garmin and GPS, which the go-to guide for every destination in California. While CEO at Thomas Bros. Maps, Wilson formed the Thomas Bros. Maps Educational Foundation. The company also ran an "urban geography project called "Community Treasures," which sought to involve school and youth groups across the state of California to create pride and promote urban geography around important locations and features of local communities across California." 1 In 1999 Warren Wilson sold Thomas Bros. Maps to Rand McNally.
In addition to his many accomplishments, Wilson was a published author, including Dark, Light, Almost White, Memoir of a Creole Son, and Touch Stones in Poetic Verse. Wilson believed that "Poetry can be perceived as threads of inspired thought like the warp and the weft, woven into a meaningful fabric."
He was the last surviving brother of the late Mayor Lionel Wilson. According to a 2008 review of Dark, Light, Almost White, Memoir of a Creole Son, brother Lionel Wilson choose to identify as Black, while Warren Wilson identified as Creole, 3 which illustrates the complexities of mixed race individuals in American society.
Wilson and his wife Joanne Casey had one child, Casey Wilson, and Wilson also had four other children: Gayle Wilson, Margot Maurer, Kim Jansma, and Derek Wilson.
At the time of his death five of Warren Wilson's brothers and one sister had already predeceased him: Lionel Wilson, Kermit Wilson, Jules Wilson, Barry Wilson and Harold Anthony Wilson, and sister Marjorie, who were accomplished, interesting persons in their own right. He had one sister who was still living, Marie Anderson.
Warren Barrios Wilson's memorial service was held on November 16th 2012, at the First Unitarian Church in Oakland.


Enjoy your stay at the hotel Au Tambour, to take a tour of the greenest exhibition in Champagne Tendance Nature.
The show takes place at the Reims Exhibition Center, just 10 minutes from our hotel.
Want to breath some fresh air?
With the arrival of spring, you will find lots of ideas for nature, DIY, gardening and outings organized by theme.
After celebrating its 20th anniversary last year, the Tendance Nature show is preparing for you this year 3 exhibition halls with more than 300 professionals.
More than 20,000 participants are still expected this year.
On the garden part, Tendance Nature is a great opportunity to discover new kinds of plants and vegetables. You will discover natural and organic solutions to take care of your garden.
An entire area is dedicated to well-being and bio. Discover all the latest developments in organic cosmetics, minerals, spas, phytotherapy, essential oils ... You will also have the opportunity to learn more about organic food.
The show is also an opportunity to discover new techniques and solutions in housing.
Finally, many craftsmen will make you discover their original and unique creations.
Feel free to request for more information when you arrive at the hotel. We'll do our best to answer your question.


National Corn Growers Association | Remember to Register for NCGA CUTC 2014 Today!
REMEMBER TO REGISTER FOR NCGA CUTC 2014 TODAY!
Home News & Resources News Stories Remember to Register for NCGA CUTC 2014 Today!
Jan. 21: Register for the National Corn Growers Association's 2014 Corn Utilization and Technology Conference today to take advantage of exclusive savings. The biennial event, which will be held June 2-4 in Louisville, Ky., will feature the cutting-edge technologies and new uses that continually improve and dynamically change the corn industry.
Sessions will address genetics, biotechnology and grain quality. Additional offerings will explore new technologies and products from wet and dry processing, enzyme technology and products from biorefineries. Participants may also select to attend presentations on new starch uses, resistant starch and nutrition, biopolymers and higher valued products such as nutraceuticals.
The Gary Lamie Graduate Student Poster Competition will again showcase the latest student research and provide networking opportunities for students looking to enter these fields after graduation.
Increasingly recognized as an important industry networking event, CUTC offers attendees the chance to meet hundreds of valuable business contacts, identify potential new customers and learn how new technologies will enhance the value of corn.
CUTC 2014 will be held at the Marriott Louisville Downtown Hotel. Visit www.corntechconf.org for updates as additional information becomes available. Reservations for discounted rooms are available through March 30, click here.


Volvo Cars Usa - I realize that you're seeking articles on our blog within the headline Volvo Cars Usa of choices of articles that we got. If you are trying to find Volvo Cars Usa article and you fails to dwell right here, you can see from several of the articles that may suit your needs right down below. We are going to help you to get articles Volvo Cars Usa you're looking at some of our content which might be suitable as you are looking for the material. Thank you for coming to our website. We really hope that you will find what you want to find here related to the Volvo Cars Usa.
Volvo Cars Usa - Volvo cars - official site, Volvo reality and the volvo xc90 experience is the world's first virtual reality test drive on a smart phone.. 2019 volvo xc90 - luxury suv | volvo car usa, Volvo cars' pilot assist driver assistance technology helps keep the xc90 at a set speed and distance to the vehicle in front of you, using steering input to keep you in the center of your lane. pilot assist works at speeds up to 80 mph, and is particularly helpful in highway conditions, helping to reduce some of the effort required when. Volvo car usa (@volvocarusa) | twitter, The latest tweets from volvo car usa (@volvocarusa). official twitter account of volvo car usa customer care: volvonacares@volvoforlife.com. usa. Volvo car usa newsroom, Volvo cars launch new s60 sports sedan – the first volvo car made in the usa. volvo cars, the premium car maker, today revealed the new s60 mid-size premium sports sedan at the company's first us manufacturing plant in charleston, south carolina.. Volvo car usa - youtube, The all-new 2019 volvo s60 is the sport sedan that rewrites the driving story. effortless performance meets intuitive technology, while a sophisticated chassis balances comfort and control.. Volvo cars expands global manufacturing footprint , Volvo cars expands global manufacturing footprint with first us factory. volvo cars, the premium car maker, today inaugurates its first us manufacturing plant, in charleston, south carolina, establishing the company as a truly global car manufacturer with plants in all three major sales regions.. Volvo xc40 - cars - sale - certified pre-owned, Volvo xc40 used car . find the largest range of volvo xc40 cars for sale, available across usa from trusted volvo dealers! volvo xc40 - used cars - for sale - certified pre-owned. Volvo car open 2019 | usa, sc - wta tennis, United states chloe beck (usa ) united states emma navarro (usa ) winner czech republic lucie hradecka (cze ) winner slovenia andreja klepac (slo ) 6-3 6-2. match stats : thursday, april, 04, 2019. court time volvo car open champion madison keys and her coach juan todero join the wta. Volvo parts & accessories local dealer | volvo, Volvo comfort accessories prepare you and your volvo to face it all. pack and load genuine volvo pack & load accessories let you bring it all along and leave inconvenience and hassle behind..