YUI.add("attribute-observable",function(o,t){var e=o.EventTarget;function a(){this._ATTR_E_FACADE={},e.call(this,{emitFacade:!0})}a._ATTR_CFG=["broadcast"],a.prototype={set:function(t,e,a){return this._setAttr(t,e,a)},_set:function(t,e,a){return this._setAttr(t,e,a,!0)},setAttrs:function(t,e){return this._setAttrs(t,e)},_setAttrs:function(t,e){for(var a in t)t.hasOwnProperty(a)&&this.set(a,t[a],e);return this},_fireAttrChange:function(t,e,a,r,s,n){var i,u,_=this,l=this._getFullType(t+"Change"),h=_._state;(n=n||h.data[t]||{}).published||((h=_._publish(l)).emitFacade=!0,h.defaultTargetOnly=!0,h.defaultFn=_._defAttrChangeFn,(u=n.broadcast)!==undefined&&(h.broadcast=u),n.published=!0),s?(i=o.merge(s))._attrOpts=s:i=_._ATTR_E_FACADE,i.attrName=t,i.subAttrName=e,i.prevVal=a,i.newVal=r,_._hasPotentialSubscribers(l)?_.fire(l,i):this._setAttrVal(t,e,a,r,s,n)},_defAttrChangeFn:function(t,e){var a=t._attrOpts;a&&delete t._attrOpts,this._setAttrVal(t.attrName,t.subAttrName,t.prevVal,t.newVal,a)?e||(t.newVal=this.get(t.attrName)):e||t.stopImmediatePropagation()}},o.mix(a,e,!1,null,1),o.AttributeObservable=a,o.AttributeEvents=a},"patched-v3.18.3",{requires:["event-custom"]});