text:
Search for -Any-ArticleBasic pageMemberResource
Tweets by Safeguarding Health
Tweets by SafeguardingHC
More Protection for Healthcare Needed
Experts are calling for increased protection to healthcare workers and patients in crisis situations in the face of growing attacks on health facilities, which challenge notions of their neutrality. "We need multiple and reinforcing means to protect health care in situations of violence, including the well-developed mechanisms of human rights monitoring, reporting and accountability," Leonard Rubenstein, chair of Safeguarding Health in Conflict Coalition, a group of humanitarian and human rights organizations, told IRIN from the World Health Assembly, which is being held from 19 to 24 May in Geneva.
Read more about More Protection for Healthcare Needed
Health Care under Attack: A Call for Action
A technical briefing on healthcare workers under attack was held 21 May by WHO in occasion of the 67th World Health Assembly. Attacks on health care workers, patients and health facilities are increasing in many parts of the world. These attacks violate the basic right to health care and reflect a grave lack of respect for International Humanitarian Law, which provides special status and protection to health-care personnel. Violence against the health system limits access to medical services for those who need them most and can have grave public health consequences.
Read more about Health Care under Attack: A Call for Action
The Heroism of Polio Vaccine Workers in Pakistan
Just because time advances, it doesn't mean conditions get better. It wasn't all that long ago that polio had largely been eradicated from the world. But polio is back—in Nigeria, in Syria and, more significantly, in Pakistan. The story is complex, woven with political issues that seem to be unrelated to the reemergence of this horrible disease.
Read more about The Heroism of Polio Vaccine Workers in Pakistan
Violence Leaves Women, Girls, and Young People on the Edge in South Sudan
Two thirds of the health facilities in the areas affected by the conflict are reportedly closed or operating at limited capacity. In Jonglei, Upper Nile and Unity states, the state hospitals that usually provide emergency obstetric care services are not functional. Alternative facilities at the periphery have either been looted or destroyed and/or health staff members have fled due to insecurity.
Read more about Violence Leaves Women, Girls, and Young People on the Edge in South Sudan
Health Workers, Patients Under Attack
(Geneva, May 16, 2014) – Hundreds of attacks on health workers have occurred in dozens of countries around the world since 2012, Human Rights Watch and the Safeguarding Health in Conflict Coalition said in a joint report released today. The report, released in advance of a meeting on May 19 to 24, 2014, of health ministers from around the world, called on governments to do more to protect patients, health workers and facilities from attack in countries undergoing conflict and civil unrest. The 28-page report, "Under Attack: Violence against health workers, patients and facilities," highlights recent attacks in countries around the world.
Read more about Health Workers, Patients Under Attack
What Polio and Missing Schoolgirls Have in Common
In an interview with the CBC this week, a World Health Organization official delicately blamed "the suspension of the vaccine in one area," as if Pakistani health officials had committed some sort of careless lapse. This sort of airbrushing ignores the real cause, which is the systematic war the Taliban is waging against female health workers. Since July, 2012, at least 31 polio vaccination workers have been killed and many others have quit in fear of their and their families' lives.
Read more about What Polio and Missing Schoolgirls Have in Common
In Pakistan's Polio Epicenter, Workers Struggle against Threats and Suspicion
Health workers in Peshawar face militant attacks and resistance from some locals. Pakistan is one of three nations where the virus is spreading beyond its borders. On the second floor of a local dispensary in Peshawar, Dr. Sheda Hussain stands in front of a 50-person immunization team of female health workers and technicians. Flicking through three Power Point presentations, he guides them through the process they must follow during their visits to homes around the city.
Read more about In Pakistan's Polio Epicenter, Workers Struggle against Threats and Suspicion
Lack of Health Care Deadly for Myanmar's Rohingya
SITTWE, Myanmar — When the kicking stopped, Zura Begum suspected something was wrong with the twins she was supposed to deliver that month. When the pain started shooting through her body, all doubt was erased. She needed help, but had nowhere to turn. She was trapped with thousands of other Muslim Rohingya in a squalid, dusty camp in western Myanmar's Rakhine state. The foreign aid workers she had relied on early in her pregnancy were gone — forced out by a distrustful government and extremist Buddhist mobs. Getting help outside the camps, in hospitals run by the Buddhist Rakhine majority, requires special permission that is harder than ever to obtain.
Read more about Lack of Health Care Deadly for Myanmar's Rohingya
Kidnapped Anti-Polio Team Freed in FR Tank
TANK: The kidnappers set free the six employees of the World Health Organisation who had been kidnapped from the Pang area on February 17, an official said on Wednesday. Assistant Political Agent, Frontier Region Tank, Nasir Khan, told reporters that the anti-polio team, including Dr Khandad, in-charge of the Union Council Siddiqullah, driver Kalim, three Levies personnel — Lance Naik Daulat Khan, Sepoy Amanullah and Sepoy Minhas — had left for the Pang area at 8 am to administer the anti-polio drops to children when they were kidnapped on February 17.
Read more about Kidnapped Anti-Polio Team Freed in FR Tank
Attempted Kidnapping: Two Female Polio Workers Saved by Locals
BANNU: Unidentified armed men attempted to kidnap two female polio workers in Howaid area of Bannu on Wednesday before letting them go with a warning. The workers were let go after the mediation of locals but with the warning that they would be killed if seen vaccinating children in the area again. An official of the Howaid police station, Fidaullah Wazir, said Taj Bibi and Gohar Taj complained to the police that they were immunising children in Mamakhel when three armed men approached them.
Read more about Attempted Kidnapping: Two Female Polio Workers Saved by Locals
Safeguarding Health in Conflict © 2015


Chinese students at New York City's Columbia University who were targeted by racist vandalism have created a video to fight back.
Sixth Tone reports that during the Chinese New Year holiday period, several students had their name tags on their doors removed. The name tags had displayed romanized or pinyin versions of their names. At American universities, it is not uncommon for students living in residence halls to have their name tags on their doors. It is suspected that the vandalism was racially motivated as those with western names had their name tags intact.
According to Columbia's student news website, the attacks on Asian name tags began earlier in the semester in one dorm and spread to others during the holiday.
Melinda Aquino, associate dean of multicultural affairs said that an investigation has been launched and has called for any information on those responsible. Aquino expressed concerns regarding the "growing climate of xenophobia" and its effects on the Columbia university community.
Just under a week after the reports, sophomore Columbia undergraduate Yan Huhe published a video he created with fellow Chinese international students discussing the meanings of their names.
Their viral video, 'Say My Name,' has reached over 285,000 views on Facebook.
The video serves as a statement from the stereotypically 'silent' Chinese community and a first step toward gaining more understanding," he added.
"I initially intended the video to be shared among the campus community at Columbia, but the viewership reached much further. I'm very glad it has prompted people to discuss and reflect on their identities and how we can combat the larger xenophobic climate," he said.


Whether served as an appetizer for 10-12, or an entree for 4, wings are always a favorite. The seasonings listed should be considered a guide; change them to suit your own preferences. Seasoned as given, the wings will be flavorful, but fairly mild.
Generously oil roasting pan(s) or baking sheet(s) large enough to hold the chicken pieces without touching. Preheat oven to 400° F.
Mix seasonings together, blending well, in a shallow bowl or plate.
Separate each whole wing into 3 sections at the joints. Save tips for use in stock or discard. Snip off any pieces of fat or loose skin. (Scissors work better than a knife.) Roll each wing section in seasoning mix and place on prepared pan so it doesn't touch others to allow for browning.
Bake 12-15 minutes, remove from oven, and turn pieces. Return to oven for another 12-15 minutes, or until done. Cut into a meaty section to check for doneness.
Good hot, cold, or room temperature.


text:
Q: Showing "Username Accepted" message using JSON and ASP.NET MVC 4 I have created a method that checks the database for duplication of usernames and then displays a message using JSON that the username is not available if already taken.
Although everything seems to work fine, I cant get to display the a success message if the username is new such as "Username Accepted"  using JSON. Below is my method which works perfectly, just want it to display a success message too.
Can anyone guide me on it.. ?
public JsonResult doesUsernameExist(string UserName)
{
      //Fetch usernames from the database.
      var userNames = UserServiceInstance.GetAllUsers().Where(a => a.UserName == UserName);

      if (userNames.Count() > 0)
          return Json(string.Format("{0} is not available.", UserName), JsonRequestBehavior.AllowGet);
      else
        return Json(true, JsonRequestBehavior.AllowGet);
}

A: you can do this way:
if(userNames.Count() > 0)
    return Json(new { Success = false, Message = "This username is taken"}, JsonRequestBehavior.AllowGet);
else
    return Json(new { Success = true, Message = "Username accepted"}, JsonRequestBehavior.AllowGet);

Then on client side where you make Ajax call to server, inside callback method:
...
success: function(response){
   if(response.Success){
      // user name accepted, do what ever you want, e.g alert response.Message
      ...
   }else{
      // user name taken
      ...
   }
}

Hope that helps.

redpajama_set_name: RedPajamaStackExchange


The turnout for Christmas at Mernda Villages was fantastic, and there were smiles galore.
Christmas at Mernda Villages was an event with great fun! With so much to be entertained by, everyone attending had a big smile on their face.
The popular activity, was of course, photos with Santa. The smiles beamed when pictures were taken with our special guests, as you can see by our image gallery below.


text:
/* jshint -W014, -W116, -W106, -W064, -W097, -W079 */
/* global process, global */
/**
 * @preserve Copyright (c) 2013 Petka Antonov
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:</p>
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
"use strict";
//TODO Prevent passing the same function identity multiple times as a listener
//for the same event

//TODO maxListeners API

var INITIAL_DISTINCT_HANDLER_TYPES = 6;
var domain;
var Array = global.Array;
var isArray = Array.isArray;
var objectCreate = Object.create;

function EventEmitter() {
    this.domain = null;
    if( EventEmitter.usingDomains ) {
        domain = domain || require("domain");
        if( domain.active && !(this instanceof domain.Domain) ) {
            this.domain = domain.active;
        }
    }
    this._maybeInit();
}

EventEmitter.EventEmitter = EventEmitter;

EventEmitter.usingDomains = false;
EventEmitter.defaultMaxListeners = 10;

EventEmitter.prototype.setMaxListeners =
    function EventEmitter$setMaxListeners(n) {
        if( ( n >>> 0 ) !== n ) {
            throw TypeError("n must be a positive integer");
        }
        this._maxListeners = n;
        return this;
    };

EventEmitter.prototype.emit = function EventEmitter$emit( type, a1, a2 ) {
    if( type === void 0 ) return false;
    if( typeof type !== "string") type = ( "" + type );
    this._maybeInit();

    var index = this._indexOfEvent( type );

    if( index < 0 ) {
        if( type === "error" ) {
            this._emitError( a1 );
        }
        return false;
    }

    var k = index + 1;
    var len = k + this._eventSpace;
    var argc = arguments.length;

    if( this.domain != null && this !== process ) {
        this.domain.enter();
    }

    var eventsWereFired = false;
    if( argc > 3 ) {
        var args = new Array( argc - 1 );
        for( var i = 0, len = args.length; i < len; ++i ) {
            args[i] = arguments[i+1];
        }
        eventsWereFired = this._emitApply( k, len, args );
    }
    else if( len - k === 1 ) {
        switch( argc ) {
            case 1: eventsWereFired = this._emitSingle0( k ); break;
            case 2: eventsWereFired = this._emitSingle1( k, a1 ); break;
            case 3: eventsWereFired = this._emitSingle2( k, a1, a2 ); break;
        }
    }
    else {
        switch( argc ) {
            case 1: eventsWereFired = this._emit0( k, len ); break;
            case 2: eventsWereFired = this._emit1( k, len, a1 ); break;
            case 3: eventsWereFired = this._emit2( k, len, a1, a2 ); break;
        }
    }

    if( this.domain != null && this !== process ) {
        this.domain.exit();
    }
    return eventsWereFired;
};

EventEmitter.prototype.addListener =
    EventEmitter.prototype.on =
        function EventEmitter$addListener( type, listener, context ) {
            if( typeof listener !== "function" )
                throw new TypeError("listener must be a function");
            if( typeof type !== "string" )
                type = ( "" + type );

            this._maybeInit();
            this._emitNew( type, listener );
            var index = this._nextFreeIndex( type );
            var events = this._events;
            events[index] = listener;
            events[index].context = context;
            return this;
        };

EventEmitter.prototype.once = function EventEmitter$once( type, listener, context ) {
    if( typeof listener !== "function" )
        throw new TypeError("listener must be a function");
    if( typeof type !== "string" )
        type = ( "" + type );

    this._maybeInit();
    this._emitNew( type, listener );
    var index = this._nextFreeIndex( type );
    var events = this._events;
    var self = this;
    function s() {
        self.removeListener( type, s );
        return listener.apply( this, arguments );
    }
    events[index] = s;
    s.listener = listener;
    s.context = context;
    return this;
};

EventEmitter.prototype.listeners = function EventEmitter$listeners( type ) {
    if( typeof type !== "string")
        type = ( "" + type );

    this._maybeInit();
    var index = this._indexOfEvent( type );
    if( index < 0 ) {
        return [];
    }
    var ret = [];
    var k = index + 1;
    var m = k + this._eventSpace;
    var events = this._events;
    for( ; k < m; ++k ) {
        if( events[k] === void 0 ) {
            break;
        }
        ret.push( events[k] );
    }
    return ret;
};

EventEmitter.prototype.removeListener =
    function EventEmitter$removeListener( type, listener ) {
        if( typeof listener !== "function" )
            throw new TypeError("listener must be a function");
        if( typeof type !== "string")
            type = ( "" + type );

        this._maybeInit();
        var index = this._indexOfEvent( type );

        if( index < 0 ) {
            return this;
        }
        var events = this._events;
        var eventSpace = this._eventSpace;
        var k = index + 1;
        var j = k;
        var len = k + eventSpace;
        var skips = 0;
        var removeListenerIndex = -2;

        for( ; k < len; ++k ) {
            var item = events[k];
            if( item === listener ||
                ( item !== void 0 && item.listener === listener ) ) {
                skips++;
                events[k] = void 0;
                if( removeListenerIndex === -2 ) {
                    removeListenerIndex = this._indexOfEvent("removeListener");
                }
                if( removeListenerIndex >= 0 ) {
                    this._emitRemove( type, listener );
                }
            }
            else {
                events[ j++ ] = item;
            }
        }

        for( k = len - skips; k < len; ++k ) {
            events[k] = void 0;
        }

        return this;
    };

EventEmitter.prototype.removeAllListeners =
    function EventEmitter$removeAllListeners( type ) {
        this._maybeInit();
        if( type === void 0 ) {
            if( this._indexOfEvent("removeListener") >= 0 ) {
                this._emitRemoveAll( void 0 );
            }
            var events = this._events = new Array( this._events.length );
            this._initSpace( events );
            return this;
        }
        if( typeof type !== "string")
            type = ( "" + type );

        var index = this._indexOfEvent( type );
        if( index < 0 ) {
            return this;
        }
        var events = this._events;
        var eventSpace = this._eventSpace;
        var k = index + 1;
        var len = k + eventSpace;
        if( this._indexOfEvent("removeListener") >= 0 ) {
            this._emitRemoveAll( type );
        }
        for( ; k < len; ++k ) {
            events[k] = void 0;
        }

        return this;
    };

EventEmitter.listenerCount = function( emitter, type ) {
    if( !( emitter instanceof EventEmitter ) ) {
        throw new TypeError( "Not an event emitter" );
    }

    var total = 0;
    var events = emitter._events;
    if( !isArray( events ) ) {
        return 0;
    }
    var len = events.length;
    if( type === void 0 ) {
        for( var i = 0; i < len; ++i ) {
            if( typeof events[i] === "function" ) total++;
        }
    }
    else {
        if( typeof type !== "string")
            type = ( "" + type );
        var index = this._indexOfEvent( type ) + 1;
        var eventSpace = this._eventSpace;
        var k = index;
        var m = index + eventSpace;
        for( ; k < m; ++k ) {
            if( typeof events[k] === "function" ) total++;
        }
    }
    return total;
};

EventEmitter.prototype._resizeForHandlers =
    function EventEmitter$_resizeForHandlers() {
        var events = this._events;
        var tmp = new Array( events.length );
        for( var i = 0, len = tmp.length; i < len; ++i ) {
            tmp[i] = events[i];
        }
        var oldEventSpace = this._eventSpace;
        var newEventSpace = this._eventSpace = ( oldEventSpace * 2 + 2 );
        var length = events.length = ( ( newEventSpace + 1 ) *
            Math.max( this._eventCount, INITIAL_DISTINCT_HANDLER_TYPES ) ) | 0;

        newEventSpace++;
        oldEventSpace++;
        for( var i = 0, j = 0;
             i < length;
             i+= newEventSpace, j += oldEventSpace ) {

            var k = j;
            var m = k + oldEventSpace;
            var n = 0;
            for( ; k < m; ++k ) {
                events[i + n] = tmp[k];
                n++;
            }

            k = i + n;
            m = i + newEventSpace;
            for( ; k < m; ++k ) {
                events[k] = void 0;
            }
        }
    };

EventEmitter.prototype._doCompact = function EventEmitter$_doCompact() {
    var j = 0;
    var eventSpace = this._eventSpace + 1;
    var eventCount = this._eventCount;
    var shouldCompact = false;
    var events = this._events;
    for( var i = 0; i < eventCount; ++i ) {
        if( events[j+1] === void 0 ) {
            shouldCompact = true;
            break;
        }
        j += eventSpace;
    }
    if( !shouldCompact ) return false;
    j = 0;
    var len = events.length;
    var skips = 0;
    for( var i = 0; i < len; i += eventSpace ) {
        var listener = events[ i + 1 ];
        if( listener === void 0 ) {
            skips += eventSpace;
        }
        else {
            var k = i;
            var m = k + eventSpace;
            for( ; k < m; ++k ) {
                events[ j++ ] = events[ k ];
            }
        }
    }
    for( var i = len - skips; i < len; ++i ) {
        events[i] = void 0;
    }
    return true;
};

EventEmitter.prototype._resizeForEvents =
    function EventEmitter$_resizeForEvents() {
        if( this._doCompact() ) {
            return;
        }
        var events = this._events;
        var oldLength = events.length;
        var newLength = ( ( this._eventSpace + 1 ) *
        Math.max( this._eventCount * 2, INITIAL_DISTINCT_HANDLER_TYPES ) );
        for( var i = oldLength; i < newLength; ++i ) {
            events.push( void 0 );
        }
    };

EventEmitter.prototype._emitRemoveAll =
    function EventEmitter$_emitRemoveAll( type ) {
        var events = this._events;
        if( type === void 0 ) {
            var len = events.length;
            var eventSpace = this._eventSpace + 1;
            for( var i = 0; i < len; i += eventSpace ) {
                var emitType = events[i];
                var k = i + 1;
                var m = k + eventSpace;
                for( ; k < m; ++k ) {
                    var listener = events[k];
                    if( listener === void 0 ) {
                        break;
                    }
                    this._emitRemove( emitType, listener.listener
                        ? listener.listener
                        : listener );
                }

            }
        }
        else {
            var k = this._indexOfEvent( type ) + 1;
            var m = k + this._eventSpace + 1;

            for( ; k < m; ++k ) {
                var listener = events[k];
                if( listener === void 0 ) {
                    break;
                }
                this._emitRemove( type, listener.listener
                    ? listener.listener
                    : listener );
            }
        }
    };

EventEmitter.prototype._emitRemove =
    function EventEmitter$_emitRemove( type, fn ) {
        this.emit( "removeListener", type, fn );
    };

EventEmitter.prototype._emitNew = function EventEmitter$_emitNew( type, fn ) {
    var i = this._indexOfEvent( "newListener ");
    if( i < 0 ) return;
    this.emit( "newListener", type, fn );
};

EventEmitter.prototype._indexOfEvent =
    function EventEmitter$_indexOfEvent( eventName ) {
        var j = 0;
        var eventSpace = this._eventSpace + 1;
        var eventCount = this._eventCount;
        var events = this._events;
        for( var i = 0; i < eventCount; ++i ) {
            if( events[j] === eventName ) {
                return j;
            }
            j+= eventSpace;
        }
        return -1;
    };

EventEmitter.prototype._warn =
    function EventEmitter$_warn( eventName, listenerCount ) {
        if( !this.__warnMap ) {
            this.__warnMap = objectCreate( null );
        }
        if( !this.__warnMap[eventName] ) {
            this.__warnMap[eventName] = true;
            console.error( "(node) warning: possible EventEmitter memory " +
                "leak detected. %d listeners added. " +
                "Use emitter.setMaxListeners() to increase limit.",
                listenerCount );
            console.trace();
        }
    };

EventEmitter.prototype._checkListenerLeak =
    function EventEmitter$_checkListenerLeak( eventName, listenerCount ) {
        var max = this._maxListeners;
        if( max < 0 ) {
            max = EventEmitter.defaultMaxListeners;
        }
        if( (max >>> 0) === max && max > 0 ) {
            if( listenerCount > max ) {
                this._warn( eventName, listenerCount );
            }
        }
    };

EventEmitter.prototype._nextFreeIndex =
    function EventEmitter$_nextFreeIndex( eventName ) {
        var eventSpace = this._eventSpace + 1;
        var events = this._events;
        var length = events.length;
        for( var i = 0; i < length; i += eventSpace ) {
            var event = events[i];
            if( event === eventName ) {
                var k = i + 1;
                var len = i + eventSpace;
                for( ; k < len; ++k ) {
                    if( events[k] === void 0 ) {
                        this._checkListenerLeak( eventName, k - i );
                        return k;
                    }
                }
                this._resizeForHandlers();
                return this._nextFreeIndex( eventName );
            }
            //Don't check leaks when there is 1 listener
            else if( event === void 0 ) {
                events[i] = eventName;
                this._eventCount++;
                return i + 1;
            }
            else if( events[ i + 1 ] === void 0) {
                events[i] = eventName;
                return i + 1;
            }
        }
        this._resizeForEvents();
        return this._nextFreeIndex( eventName );
    };

EventEmitter.prototype._emitError = function EventEmitter$_emitError( e ) {
    if( this.domain != null ) {
        if( !e ) {
            e = new TypeError("Uncaught, unspecified 'error' event.");
        }
        e.domainEmitter = this;
        e.domain = this.domain;
        e.domainThrown = false;
        this.domain.emit( "error", e );
    }
    else if( e instanceof Error ) {
        throw e;
    }
    else {
        throw new TypeError("Uncaught, unspecified 'error' event.");
    }
};

EventEmitter.prototype._emitApply =
    function EventEmitter$_emitApply( index, length, args ) {
        var eventsWereFired = false;
        var multipleListeners = ( length - index ) > 1;
        var events = this._events;
        var event = events[index];
        if( !multipleListeners ) {
            if( event !== void 0) {
                event.apply( event.context, args );
                return true;
            }
            return false;
        }
        var next = void 0;
        for( ; index < length; ++index ) {
            event = events[index];
            if( event === void 0 ) {
                break;
            }
            eventsWereFired = true;
            if( multipleListeners && ( ( index + 1 ) < length ) ) {
                next = events[ index + 1 ];
            }
            event.apply( event.context, args );
            //The current listener was removed from its own callback
            if( multipleListeners && ( ( index + 1 ) < length ) &&
                next !== void 0 && next === events[index] ) {
                index--;
                length--;
            }
        }
        return eventsWereFired;
    };

EventEmitter.prototype._emitSingle0 =
    function EventEmitter$_emitSingle0( index ) {
        var event = this._events[index];
        if( event !== void 0) {
            event.call( event.context );
            return true;
        }
        return false;
    };

EventEmitter.prototype._emitSingle1 =
    function EventEmitter$_emitSingle1( index, a1 ) {
        var event = this._events[index];
        if( event !== void 0) {
            event.call( event.context, a1 );
            return true;
        }
        return false;
    };

EventEmitter.prototype._emitSingle2 =
    function EventEmitter$_emitSingle2( index, a1, a2 ) {
        var event = this._events[index];
        if( event !== void 0) {
            event.call( event.context, a1, a2 );
            return true;
        }
        return false;
    };

EventEmitter.prototype._emit0 = function EventEmitter$_emit0( index, length ) {
    var eventsWereFired = false;
    var next = void 0;
    var events = this._events;
    var event;
    for( ; index < length; ++index ) {
        event = events[index];
        if( event === void 0 ) {
            break;
        }
        eventsWereFired = true;
        if( ( ( index + 1 ) < length ) ) {
            next = events[ index + 1 ];
        }
        event.call( event.context );
        //The current listener was removed from its own callback
        if( ( ( index + 1 ) < length ) &&
            next !== void 0 && next === events[index] ) {
            index--;
            length--;
        }
        else if( next === void 0 ) {
            break;
        }
    }
    return eventsWereFired;
};

EventEmitter.prototype._emit1 =
    function EventEmitter$_emit1( index, length, a1 ) {
        var eventsWereFired = false;
        var next = void 0;
        var events = this._events;
        var event;
        for( ; index < length; ++index ) {
            event = events[index];
            if( event === void 0 ) {
                break;
            }
            eventsWereFired = true;
            if( ( ( index + 1 ) < length ) ) {
                next = events[ index + 1 ];
            }
            event.call( event.context, a1 );
            //The current listener was removed from its own callback
            if( ( ( index + 1 ) < length ) &&
                next !== void 0 && next === events[index] ) {
                index--;
                length--;
            }
            else if( next === void 0 ) {
                break;
            }
        }
        return eventsWereFired;
    };

EventEmitter.prototype._emit2 =
    function EventEmitter$_emit2( index, length, a1, a2 ) {
        var eventsWereFired = false;
        var next = void 0;
        var events = this._events;
        var event;
        for( ; index < length; ++index ) {
            event = events[index];
            if( event === void 0 ) {
                break;
            }
            eventsWereFired = true;
            if( ( ( index + 1 ) < length ) ) {
                next = events[ index + 1 ];
            }
            event.call( event.context, a1, a2 );
            //The current listener was removed from its own callback
            if( ( ( index + 1 ) < length ) &&
                next !== void 0 && next === events[index] ) {
                index--;
                length--;
            }
            else if( next === void 0 ) {
                break;
            }
        }
        return eventsWereFired;
    };

//eventSpace =
//The reserved space for handlers of a distinct event type

//eventCount =
//The amount of unique event types currently registered.
//Might not be the actual amount

EventEmitter.prototype._maybeInit = function EventEmitter$_maybeInit() {
    if( !isArray( this._events ) ) {
        if( ( this._maxListeners >>> 0 ) !== this._maxListeners ) {
            this._maxListeners = -1;
        }
        this._eventSpace = 1;
        this._eventCount = 0;
        var events = this._events = new Array( ( ( this._eventSpace + 1 ) *
            INITIAL_DISTINCT_HANDLER_TYPES ) | 0);
        this._initSpace( events );
    }
};

EventEmitter.prototype._initSpace = function EventEmitter$_initSpace( events ) {
    var len = events.length;
    for( var i = 0; i < len; ++i ) {
        events[i] = void 0;
    }
};

module.exports = EventEmitter;

/* jshint -W014, -W116, -W106, -W064, -W097, -W079 */
/* global process, global */
/**
 * @preserve Copyright (c) 2013 Petka Antonov
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:</p>
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
"use strict";
//TODO Prevent passing the same function identity multiple times as a listener
//for the same event

//TODO maxListeners API

var INITIAL_DISTINCT_HANDLER_TYPES = 6;
var domain;
var Array = global.Array;
var isArray = Array.isArray;
var objectCreate = Object.create;

function EventEmitter() {
    this.domain = null;
    if( EventEmitter.usingDomains ) {
        domain = domain || require("domain");
        if( domain.active && !(this instanceof domain.Domain) ) {
            this.domain = domain.active;
        }
    }
    this._maybeInit();
}

EventEmitter.EventEmitter = EventEmitter;

EventEmitter.usingDomains = false;
EventEmitter.defaultMaxListeners = 10;

EventEmitter.prototype.setMaxListeners =
    function EventEmitter$setMaxListeners(n) {
        if( ( n >>> 0 ) !== n ) {
            throw TypeError("n must be a positive integer");
        }
        this._maxListeners = n;
        return this;
    };

EventEmitter.prototype.emit = function EventEmitter$emit( type, a1, a2 ) {
    if( type === void 0 ) return false;
    if( typeof type !== "string") type = ( "" + type );
    this._maybeInit();

    var index = this._indexOfEvent( type );

    if( index < 0 ) {
        if( type === "error" ) {
            this._emitError( a1 );
        }
        return false;
    }

    var k = index + 1;
    var len = k + this._eventSpace;
    var argc = arguments.length;

    if( this.domain != null && this !== process ) {
        this.domain.enter();
    }

    var eventsWereFired = false;
    if( argc > 3 ) {
        var args = new Array( argc - 1 );
        for( var i = 0, len = args.length; i < len; ++i ) {
            args[i] = arguments[i+1];
        }
        eventsWereFired = this._emitApply( k, len, args );
    }
    else if( len - k === 1 ) {
        switch( argc ) {
            case 1: eventsWereFired = this._emitSingle0( k ); break;
            case 2: eventsWereFired = this._emitSingle1( k, a1 ); break;
            case 3: eventsWereFired = this._emitSingle2( k, a1, a2 ); break;
        }
    }
    else {
        switch( argc ) {
            case 1: eventsWereFired = this._emit0( k, len ); break;
            case 2: eventsWereFired = this._emit1( k, len, a1 ); break;
            case 3: eventsWereFired = this._emit2( k, len, a1, a2 ); break;
        }
    }

    if( this.domain != null && this !== process ) {
        this.domain.exit();
    }
    return eventsWereFired;
};

EventEmitter.prototype.addListener =
    EventEmitter.prototype.on =
        function EventEmitter$addListener( type, listener, context ) {
            if( typeof listener !== "function" )
                throw new TypeError("listener must be a function");
            if( typeof type !== "string" )
                type = ( "" + type );

            this._maybeInit();
            this._emitNew( type, listener );
            var index = this._nextFreeIndex( type );
            var events = this._events;
            events[index] = listener;
            events[index].context = context;
            return this;
        };

EventEmitter.prototype.once = function EventEmitter$once( type, listener, context ) {
    if( typeof listener !== "function" )
        throw new TypeError("listener must be a function");
    if( typeof type !== "string" )
        type = ( "" + type );

    this._maybeInit();
    this._emitNew( type, listener );
    var index = this._nextFreeIndex( type );
    var events = this._events;
    var self = this;
    function s() {
        self.removeListener( type, s );
        return listener.apply( this, arguments );
    }
    events[index] = s;
    s.listener = listener;
    s.context = context;
    return this;
};

EventEmitter.prototype.listeners = function EventEmitter$listeners( type ) {
    if( typeof type !== "string")
        type = ( "" + type );

    this._maybeInit();
    var index = this._indexOfEvent( type );
    if( index < 0 ) {
        return [];
    }
    var ret = [];
    var k = index + 1;
    var m = k + this._eventSpace;
    var events = this._events;
    for( ; k < m; ++k ) {
        if( events[k] === void 0 ) {
            break;
        }
        ret.push( events[k] );
    }
    return ret;
};

EventEmitter.prototype.removeListener =
    function EventEmitter$removeListener( type, listener ) {
        if( typeof listener !== "function" )
            throw new TypeError("listener must be a function");
        if( typeof type !== "string")
            type = ( "" + type );

        this._maybeInit();
        var index = this._indexOfEvent( type );

        if( index < 0 ) {
            return this;
        }
        var events = this._events;
        var eventSpace = this._eventSpace;
        var k = index + 1;
        var j = k;
        var len = k + eventSpace;
        var skips = 0;
        var removeListenerIndex = -2;

        for( ; k < len; ++k ) {
            var item = events[k];
            if( item === listener ||
                ( item !== void 0 && item.listener === listener ) ) {
                skips++;
                events[k] = void 0;
                if( removeListenerIndex === -2 ) {
                    removeListenerIndex = this._indexOfEvent("removeListener");
                }
                if( removeListenerIndex >= 0 ) {
                    this._emitRemove( type, listener );
                }
            }
            else {
                events[ j++ ] = item;
            }
        }

        for( k = len - skips; k < len; ++k ) {
            events[k] = void 0;
        }

        return this;
    };

EventEmitter.prototype.removeAllListeners =
    function EventEmitter$removeAllListeners( type ) {
        this._maybeInit();
        if( type === void 0 ) {
            if( this._indexOfEvent("removeListener") >= 0 ) {
                this._emitRemoveAll( void 0 );
            }
            var events = this._events = new Array( this._events.length );
            this._initSpace( events );
            return this;
        }
        if( typeof type !== "string")
            type = ( "" + type );

        var index = this._indexOfEvent( type );
        if( index < 0 ) {
            return this;
        }
        var events = this._events;
        var eventSpace = this._eventSpace;
        var k = index + 1;
        var len = k + eventSpace;
        if( this._indexOfEvent("removeListener") >= 0 ) {
            this._emitRemoveAll( type );
        }
        for( ; k < len; ++k ) {
            events[k] = void 0;
        }

        return this;
    };

EventEmitter.listenerCount = function( emitter, type ) {
    if( !( emitter instanceof EventEmitter ) ) {
        throw new TypeError( "Not an event emitter" );
    }

    var total = 0;
    var events = emitter._events;
    if( !isArray( events ) ) {
        return 0;
    }
    var len = events.length;
    if( type === void 0 ) {
        for( var i = 0; i < len; ++i ) {
            if( typeof events[i] === "function" ) total++;
        }
    }
    else {
        if( typeof type !== "string")
            type = ( "" + type );
        var index = this._indexOfEvent( type ) + 1;
        var eventSpace = this._eventSpace;
        var k = index;
        var m = index + eventSpace;
        for( ; k < m; ++k ) {
            if( typeof events[k] === "function" ) total++;
        }
    }
    return total;
};

EventEmitter.prototype._resizeForHandlers =
    function EventEmitter$_resizeForHandlers() {
        var events = this._events;
        var tmp = new Array( events.length );
        for( var i = 0, len = tmp.length; i < len; ++i ) {
            tmp[i] = events[i];
        }
        var oldEventSpace = this._eventSpace;
        var newEventSpace = this._eventSpace = ( oldEventSpace * 2 + 2 );
        var length = events.length = ( ( newEventSpace + 1 ) *
            Math.max( this._eventCount, INITIAL_DISTINCT_HANDLER_TYPES ) ) | 0;

        newEventSpace++;
        oldEventSpace++;
        for( var i = 0, j = 0;
             i < length;
             i+= newEventSpace, j += oldEventSpace ) {

            var k = j;
            var m = k + oldEventSpace;
            var n = 0;
            for( ; k < m; ++k ) {
                events[i + n] = tmp[k];
                n++;
            }

            k = i + n;
            m = i + newEventSpace;
            for( ; k < m; ++k ) {
                events[k] = void 0;
            }
        }
    };

EventEmitter.prototype._doCompact = function EventEmitter$_doCompact() {
    var j = 0;
    var eventSpace = this._eventSpace + 1;
    var eventCount = this._eventCount;
    var shouldCompact = false;
    var events = this._events;
    for( var i = 0; i < eventCount; ++i ) {
        if( events[j+1] === void 0 ) {
            shouldCompact = true;
            break;
        }
        j += eventSpace;
    }
    if( !shouldCompact ) return false;
    j = 0;
    var len = events.length;
    var skips = 0;
    for( var i = 0; i < len; i += eventSpace ) {
        var listener = events[ i + 1 ];
        if( listener === void 0 ) {
            skips += eventSpace;
        }
        else {
            var k = i;
            var m = k + eventSpace;
            for( ; k < m; ++k ) {
                events[ j++ ] = events[ k ];
            }
        }
    }
    for( var i = len - skips; i < len; ++i ) {
        events[i] = void 0;
    }
    return true;
};

EventEmitter.prototype._resizeForEvents =
    function EventEmitter$_resizeForEvents() {
        if( this._doCompact() ) {
            return;
        }
        var events = this._events;
        var oldLength = events.length;
        var newLength = ( ( this._eventSpace + 1 ) *
        Math.max( this._eventCount * 2, INITIAL_DISTINCT_HANDLER_TYPES ) );
        for( var i = oldLength; i < newLength; ++i ) {
            events.push( void 0 );
        }
    };

EventEmitter.prototype._emitRemoveAll =
    function EventEmitter$_emitRemoveAll( type ) {
        var events = this._events;
        if( type === void 0 ) {
            var len = events.length;
            var eventSpace = this._eventSpace + 1;
            for( var i = 0; i < len; i += eventSpace ) {
                var emitType = events[i];
                var k = i + 1;
                var m = k + eventSpace;
                for( ; k < m; ++k ) {
                    var listener = events[k];
                    if( listener === void 0 ) {
                        break;
                    }
                    this._emitRemove( emitType, listener.listener
                        ? listener.listener
                        : listener );
                }

            }
        }
        else {
            var k = this._indexOfEvent( type ) + 1;
            var m = k + this._eventSpace + 1;

            for( ; k < m; ++k ) {
                var listener = events[k];
                if( listener === void 0 ) {
                    break;
                }
                this._emitRemove( type, listener.listener
                    ? listener.listener
                    : listener );
            }
        }
    };

EventEmitter.prototype._emitRemove =
    function EventEmitter$_emitRemove( type, fn ) {
        this.emit( "removeListener", type, fn );
    };

EventEmitter.prototype._emitNew = function EventEmitter$_emitNew( type, fn ) {
    var i = this._indexOfEvent( "newListener ");
    if( i < 0 ) return;
    this.emit( "newListener", type, fn );
};

EventEmitter.prototype._indexOfEvent =
    function EventEmitter$_indexOfEvent( eventName ) {
        var j = 0;
        var eventSpace = this._eventSpace + 1;
        var eventCount = this._eventCount;
        var events = this._events;
        for( var i = 0; i < eventCount; ++i ) {
            if( events[j] === eventName ) {
                return j;
            }
            j+= eventSpace;
        }
        return -1;
    };

EventEmitter.prototype._warn =
    function EventEmitter$_warn( eventName, listenerCount ) {
        if( !this.__warnMap ) {
            this.__warnMap = objectCreate( null );
        }
        if( !this.__warnMap[eventName] ) {
            this.__warnMap[eventName] = true;
            console.error( "(node) warning: possible EventEmitter memory " +
                "leak detected. %d listeners added. " +
                "Use emitter.setMaxListeners() to increase limit.",
                listenerCount );
            console.trace();
        }
    };

EventEmitter.prototype._checkListenerLeak =
    function EventEmitter$_checkListenerLeak( eventName, listenerCount ) {
        var max = this._maxListeners;
        if( max < 0 ) {
            max = EventEmitter.defaultMaxListeners;
        }
        if( (max >>> 0) === max && max > 0 ) {
            if( listenerCount > max ) {
                this._warn( eventName, listenerCount );
            }
        }
    };

EventEmitter.prototype._nextFreeIndex =
    function EventEmitter$_nextFreeIndex( eventName ) {
        var eventSpace = this._eventSpace + 1;
        var events = this._events;
        var length = events.length;
        for( var i = 0; i < length; i += eventSpace ) {
            var event = events[i];
            if( event === eventName ) {
                var k = i + 1;
                var len = i + eventSpace;
                for( ; k < len; ++k ) {
                    if( events[k] === void 0 ) {
                        this._checkListenerLeak( eventName, k - i );
                        return k;
                    }
                }
                this._resizeForHandlers();
                return this._nextFreeIndex( eventName );
            }
            //Don't check leaks when there is 1 listener
            else if( event === void 0 ) {
                events[i] = eventName;
                this._eventCount++;
                return i + 1;
            }
            else if( events[ i + 1 ] === void 0) {
                events[i] = eventName;
                return i + 1;
            }
        }
        this._resizeForEvents();
        return this._nextFreeIndex( eventName );
    };

EventEmitter.prototype._emitError = function EventEmitter$_emitError( e ) {
    if( this.domain != null ) {
        if( !e ) {
            e = new TypeError("Uncaught, unspecified 'error' event.");
        }
        e.domainEmitter = this;
        e.domain = this.domain;
        e.domainThrown = false;
        this.domain.emit( "error", e );
    }
    else if( e instanceof Error ) {
        throw e;
    }
    else {
        throw new TypeError("Uncaught, unspecified 'error' event.");
    }
};

EventEmitter.prototype._emitApply =
    function EventEmitter$_emitApply( index, length, args ) {
        var eventsWereFired = false;
        var multipleListeners = ( length - index ) > 1;
        var events = this._events;
        var event = events[index];
        if( !multipleListeners ) {
            if( event !== void 0) {
                event.apply( event.context, args );
                return true;
            }
            return false;
        }
        var next = void 0;
        for( ; index < length; ++index ) {
            event = events[index];
            if( event === void 0 ) {
                break;
            }
            eventsWereFired = true;
            if( multipleListeners && ( ( index + 1 ) < length ) ) {
                next = events[ index + 1 ];
            }
            event.apply( event.context, args );
            //The current listener was removed from its own callback
            if( multipleListeners && ( ( index + 1 ) < length ) &&
                next !== void 0 && next === events[index] ) {
                index--;
                length--;
            }
        }
        return eventsWereFired;
    };

EventEmitter.prototype._emitSingle0 =
    function EventEmitter$_emitSingle0( index ) {
        var event = this._events[index];
        if( event !== void 0) {
            event.call( event.context );
            return true;
        }
        return false;
    };

EventEmitter.prototype._emitSingle1 =
    function EventEmitter$_emitSingle1( index, a1 ) {
        var event = this._events[index];
        if( event !== void 0) {
            event.call( event.context, a1 );
            return true;
        }
        return false;
    };

EventEmitter.prototype._emitSingle2 =
    function EventEmitter$_emitSingle2( index, a1, a2 ) {
        var event = this._events[index];
        if( event !== void 0) {
            event.call( event.context, a1, a2 );
            return true;
        }
        return false;
    };

EventEmitter.prototype._emit0 = function EventEmitter$_emit0( index, length ) {
    var eventsWereFired = false;
    var next = void 0;
    var events = this._events;
    var event;
    for( ; index < length; ++index ) {
        event = events[index];
        if( event === void 0 ) {
            break;
        }
        eventsWereFired = true;
        if( ( ( index + 1 ) < length ) ) {
            next = events[ index + 1 ];
        }
        event.call( event.context );
        //The current listener was removed from its own callback
        if( ( ( index + 1 ) < length ) &&
            next !== void 0 && next === events[index] ) {
            index--;
            length--;
        }
        else if( next === void 0 ) {
            break;
        }
    }
    return eventsWereFired;
};

EventEmitter.prototype._emit1 =
    function EventEmitter$_emit1( index, length, a1 ) {
        var eventsWereFired = false;
        var next = void 0;
        var events = this._events;
        var event;
        for( ; index < length; ++index ) {
            event = events[index];
            if( event === void 0 ) {
                break;
            }
            eventsWereFired = true;
            if( ( ( index + 1 ) < length ) ) {
                next = events[ index + 1 ];
            }
            event.call( event.context, a1 );
            //The current listener was removed from its own callback
            if( ( ( index + 1 ) < length ) &&
                next !== void 0 && next === events[index] ) {
                index--;
                length--;
            }
            else if( next === void 0 ) {
                break;
            }
        }
        return eventsWereFired;
    };

EventEmitter.prototype._emit2 =
    function EventEmitter$_emit2( index, length, a1, a2 ) {
        var eventsWereFired = false;
        var next = void 0;
        var events = this._events;
        var event;
        for( ; index < length; ++index ) {
            event = events[index];
            if( event === void 0 ) {
                break;
            }
            eventsWereFired = true;
            if( ( ( index + 1 ) < length ) ) {
                next = events[ index + 1 ];
            }
            event.call( event.context, a1, a2 );
            //The current listener was removed from its own callback
            if( ( ( index + 1 ) < length ) &&
                next !== void 0 && next === events[index] ) {
                index--;
                length--;
            }
            else if( next === void 0 ) {
                break;
            }
        }
        return eventsWereFired;
    };

//eventSpace =
//The reserved space for handlers of a distinct event type

//eventCount =
//The amount of unique event types currently registered.
//Might not be the actual amount

EventEmitter.prototype._maybeInit = function EventEmitter$_maybeInit() {
    if( !isArray( this._events ) ) {
        if( ( this._maxListeners >>> 0 ) !== this._maxListeners ) {
            this._maxListeners = -1;
        }
        this._eventSpace = 1;
        this._eventCount = 0;
        var events = this._events = new Array( ( ( this._eventSpace + 1 ) *
            INITIAL_DISTINCT_HANDLER_TYPES ) | 0);
        this._initSpace( events );
    }
};

EventEmitter.prototype._initSpace = function EventEmitter$_initSpace( events ) {
    var len = events.length;
    for( var i = 0; i < len; ++i ) {
        events[i] = void 0;
    }
};

module.exports = EventEmitter;

redpajama_set_name: RedPajamaGithub


Author, columnist and television commentator, Andrew Busch has been connecting the dots between events and global financial markets for the last twenty-five years. As the Global Currency and Public Policy Strategist for BMO Capital and outside advisor to Congress and the US Treasury, Andrew Busch regularly crafts strategies for dealing with the volatile global markets. With a humorous and humble Midwest approach, Busch shows audiences how to interpret the seismic global and public policy shifts that are taking place for investors and corporations. His timely and energetic presentations show attendees how to live and thrive in the current economic chaos.
A CNBC contributor who is regularly quoted in the press around the world, his blog is number one on CNBC's website. In addition to his daily newsletter The Busch Update, his columns in Forbes and his monthly columns for SFO (Stock, Futures, and Options) Magazine, Busch has written World Event Trading: How To Analyze and Profit From Today's Headlines.
Andy has appeared for the last three years on CNBC's The Closing Bell with Maria Bartiromo and is a CNBC contributor. Also, he appeared on FOX Business, Canadian BNN's SqueezePlay, Bloomberg TV, and numerous CNN shows including Lou Dobbs Tonight. He is regularly quoted in the following press: Wall Street Journal, Reuters News Services, Dow Jones News Services, Associate Press, and the Globe and Mail.
Lucky 13: Can we turn the corner?
Will 2013 prove to be the year where the global economic recovery sustains itself or will it fall into recession? Andrew Busch, editor and publisher of the Busch Update financial and political newsletter, draws on his thirty years of market experience to provide the opportunities and problems that lie ahead this year. As seen weekly on CNBC's Money in Motion, Busch breaks down the chaos into clear, easily understood analysis with his unique perspective and humor. "After getting run-over by the biggest and baddest financial market players in the world and surviving, I can not only tell you their license plate numbers, but also how to get the economic bugs out of your teeth." Andrew Busch will help you understand the forces of central banks and public policy makers as they attempt to pump up global economic growth. Europe, China and the United States are covered and connected to show you how they impact your world.
The fiscal cliff, the economic bungee and Taxmageddon are all new terms to the political and economic landscape for 2013. Now more than ever, the intersection of politics and markets is key to understanding how the world works and how it impacts your business. As an outside advisor on financial markets to Bush administration and the McCain campaign, Andrew Busch has for the last thirty years focused on how Washington has impacted the economy, the financial markets and the world. US Treasury Secretaries John Snow, Hank Paulson and Tim Geithner as have sought out Busch's advice on jobs, taxes and fiscal issues. In 2012, Busch met and advised: Sen. Orrin Hatch, Rep. Dave Camp and Rep. and VP candidate Paul Ryan. As seen weekly on CNBC's Money in Motion, Busch details the upcoming winners and losers from the current combative and dis-functional US government with humor and insight.
The 2008 financial crisis, the European debt crisis and China's stock market collapse were all three tailed events that have become the norm and not the exception in today's market. Low probability, high-risk events generate uncertainty and opportunity for those willing to keep their eyes and options open in 2013. With his thirty years of financial market experience, Andrew Busch will detail what he sees as the top ten risks for 2013 that can create a +/- 10% move in the markets. From an election in Germany to the outlook for the US housing recovery, Busch supplies his unique brand of analysis and ideas. As author and publisher of the Busch Update, Busch has investigated and written on top, market moving events including his book, World Event Trading: how to profit from today's headlines. (Wiley, 2007) Since March of 2011, Busch has shared his views on CNBC's Money in Motion show with keen analysis and humor that shows how the global markets are connected and how they impact your world.
The US Federal Reserve, the Bank of England and the Bank of Japan are all on quest to promote economic growth using the most dangerous monetary tool available: quantitative easing. What will this mean for the value of gold, energy and agriculture products in 2013? Editor and publisher of the Busch Update, Andrew Busch will share his thirty years of expertise in the financial markets and detail not only which central bank succeed or fail, but also how their actions impact the commodity markets. As he does on CNBC's Money in Motion, Busch breaks down the global central bank actions for your audience to show how they generate big moves in the value of gold, energy and agriculture products. Busch has enlightened and entertained farmers, bankers and politicians on the pitfalls and pratfalls that happen when Bernanke, Carney and Shirakawa, print unlimited amounts of money.
Andrew B. Busch is the Editor-in-chief for the global market and public policy newsletter, "The Busch Update." He is regular panelist on CNBC's new show, "Money in Motion" that appears every Friday. His views can be found on www.andrewbusch.com as well as CNBC.com.
For 22 years, he was with BMO Capital Markets and has written the Busch Update for the last 13 years. He was named BMO's Global Currency and Public Policy Strategist in 2007. Based in Chicago, he is a recognized expert on the world financial markets and how these markets are impacted by political events.
He provides clients with analysis on public policy issues for China, Europe and the United States. Public policy is of growing importance as the role of government has become more intertwined with the markets and the private sector.
On a regular basis, Andy consults with staff from the U.S. Department of the Treasury and Congress on economic, financial market and tax issues. In 2011, Andy was asked to testify in front of Congress on the effectiveness of the 2009 Stimulus package. From 2004 to 2008, he was an outside advisor to the US Treasury Department and White House on the economy and financial markets. Andy had a similar role for the 2008 McCain campaign. He has met and advised the last three US Secretary of the Treasury including John Snow, Hank Paulson and Tim Geithner.
In addition to his CNBC show, Andy is widely followed by clients and media for his daily commentaries and his frequent appearances on major financial news outlets, including: the WSJ, The Hill, Politico and USA Today. In 2007, he published his book entitled, "World Event Trading: How to profit from today's headlines" by Wiley.


text:
Twitter should ban racist words – MP
Published time: December 19, 2014 17:22 Get short URL
http://rt.com/uk/216039-abuse-twitter-ban-racist/
Racist words should be banned from Twitter, says a UK Labour MP who was a victim of anti-Semitic abuse online.
Luciana Berger, Shadow Minister for Public Health, urged the microblogging site to do more to stop abuse and to ban racist words, such as such as "kike," a derogatory and anti-Semitic term for Jews "which can never be used in a positive way."
Berger was a victim of server trolling abuse.
"At the height of the abuse, the police said I was the subject of 2,500 hate messages in the space of three days using the hashtag 'FilthyJewBitch'," she said in an interview with The Telegraph.
"Online hate needs to be taken as seriously as offline hate – but it isn't. Twitter's response isn't good enough. It has a responsibility to do more to protect its users.
"The site is letting me and many others down who have been the subject of lots of hate. It could start by automatically banning racist words which aren't allowed to be printed in newspapers or broadcast on TV that could never be used in a positive way – such as kike."
The MP for Liverpool Wavertree revealed the abuse had forced her to increase security at her home.
"I now have a different alarm system, shatterproof film on my windows, CCTV cameras and a bomb bag at the back of my post boxes … The whole episode has shocked and surprised me. I now always travel with someone," she said.
In October, the internet troll Garron Helm, 21, was jailed for sending Berger anti-Semitic tweets, including a picture of Berger with a Nazi yellow Star of David on her forehead featuring the hashtag "Hitler was right."
After Helm was sentenced to four weeks in prison, Berger was further inundated with anti-Semitic messages on Twitter.
A spokesman for Twitter told the paper: "We're working hard to improve the experience of people who encounter abuse on Twitter and have recently made changes so that reporting content is easier. Blocking individual words is generally ineffective at stopping unwanted behavior and may incorrectly block legitimate content."
This is the film that the royal family have had blocked from release
Censorship vermin at Youtube ban Press TV over ADL takedown request
Twitter blocks two accounts critical of Turkish govt
GERMAN GIRL TERRORIZED BY MERKEL'S MIGRANT MOB MAKES APPEAL FOR HELP ON SOCIAL MEDIA
Invisible Man book banned by the Randolph County Board of Education
Ban on Iranian channels condemned by Spanish Media Analysts
Category: Surveillance Network	Tags: BAN, banned, Block, censor, censorship, internet freedom, net freedom, racism, Racist, racist words, social media, social network, suppression, tweet, tweets, twitter

redpajama_set_name: RedPajamaCommonCrawl


Did you think love would save you?
Did you think everything would just work out?
Don't you know life's not like that?
Don't you know what it was all about?
Did you think you would find forgiveness?
Did you think you would explain it all away?
Don't you know some things can't be forgiven?
Don't you know there's nothing you can say?
Did you think you would just start again?
Don't you know your sins have to be paid for?
Don't you know there was a price, even then?
I took this yesterday evening while walking home after doing some shopping. I hadn't been expecting to do any photography but luckily I had brought my spare camera with me anyway so I was still able to take a few shots when I reached the lake and saw this lovely sunset.
The sky was really spectacular and I tried to get down low to show a bit of a different perspective and get in as much of the sky as I could. It was interesting trying to crouch down, keep my balance and compose with a camera in one hand and four bags of shopping in the other but I think it came out pretty well in the end!
I wrote this poem over a few night this week. It was good being able to let it out and I wanted the poem to be reflective rather than sad, which I think comes across.
Originally it wasn't meant to be a series of haiqua but eventually it took that shape structurally as it seemed to give the poem the simple, lyrical flow I wanted it to have.
I took the photo during the trip to New Zealand last year. It was one of my favourites from the trip.