Added: incubator/samoa/site/assets/js/bootstrap.min.js
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/assets/js/bootstrap.min.js?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/assets/js/bootstrap.min.js (added)
+++ incubator/samoa/site/assets/js/bootstrap.min.js Sun Feb 22 13:41:20 2015
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires 
jQuery");+function(a){var b=a.fn.jquery.split(" 
")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new 
Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or 
higher")}(jQuery),+function(a){"use strict";function b(){var 
a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd
 otransitionend",transition:"transitionend"};for(var c in b)if(void 
0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var
 c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var 
e=function(){c||a(d).trigger(a.support.transition.end)};return 
setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return
 a(b.target).is(this)?b.handleObj.handler.apply
 (this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function 
b(b){return this.each(function(){var 
c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new 
d(this)),"string"==typeof b&&e[b].call(c)})}var 
c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.1",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function
 c(){g.detach().trigger("closed.bs.alert").remove()}var 
e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var
 
g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var
 
e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return
 
a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use
 strict"
 ;function b(b){return this.each(function(){var 
d=a(this),e=d.data("bs.button"),f="object"==typeof 
b&&b;e||d.data("bs.button",e=new 
c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var 
c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.1",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var
 
c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var
 a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var 
c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$ele
 ment.hasClass("active")).trigger("change")}else 
this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var
 
d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return
 
a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var
 
d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api
 
blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use
 strict";function b(b){return this.each(function(){var 
d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof
 b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new 
c(this,f)),"number"==typeof 
b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var 
c=function(b,c){this.$element=a(b),this.$indicators=thi
 
s.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in
 
document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case
 37:this.prev();break;case 
39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return
 
b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return
 this.$items=a.parent().children(".it
 
em"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var
 c="prev"==a?-1:1,d=this.getItemIndex(b),e=(d+c)%this.$items.length;return 
this.$items.eq(e)},c.prototype.to=function(a){var 
b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return
 a>this.$items.length-1||0>a?void 
0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return
 b||(this.paused=!0),this.$element.find(".next, 
.prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return
 this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return 
this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var 
e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"
 
==b?"left":"right",i="next"==b?"first":"last",j=this;if(!f.length){if(!this.options.wrap)return;f=this.$element.find(".item")[i]()}if(f.hasClass("active"))return
 this.sliding=!1;var 
k=f[0],l=a.Event("slide.bs.carousel",{relatedTarget:k,direction:h});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var
 
m=a(this.$indicators.children()[this.getItemIndex(f)]);m&&m.addClass("active")}var
 n=a.Event("slid.bs.carousel",{relatedTarget:k,direction:h});return 
a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join("
 ")).addClass("active"),e.removeClass(["active",h].join(" 
")),j.sliding=!1,setTimeout(function(){j.$element.trigger(n)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trig
 ger(n)),g&&this.cycle(),this}};var 
d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return
 a.fn.carousel=d,this};var e=function(c){var 
d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var
 
g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var
 c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function 
b(b){var 
c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return
 a(d)}function c(b){return this.each(function(){var 
c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof
 b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.
 data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var 
d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"],
 
[data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.1",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var
 a=this.$element.hasClass("width");return 
a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var
 b,e=this.$parent&&this.$parent.find("> .panel").children(".in, 
.collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var
 
f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var
 g=this.di
 
mension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var
 h=function(){this.$element.removeClass("collapsing").addClass("collapse 
in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return
 h.call(this);var 
i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var
 
b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var
 
c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse
 
in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var
 e=function(){this.transit
 
ioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return
 a.support.transition?void 
this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return
 
a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var
 
e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var
 
c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var
 
e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return
 
a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var
 e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=
 
f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use
 strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var 
d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function
 c(b){var 
c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var
 d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return 
this.each(function(){var 
c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new 
g(this)),"string"==typeof b&&d[b].call(c)})}var 
e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.1",g.prototype.toggle=function(d){var
 e=a(this);if(!e.is(".disabled, :disabled")){var 
f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart
 "in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div 
class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var 
h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var
 d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, 
:disabled")){var 
e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 
27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" 
li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', 
[role="listbox"]'+h);if(i.length){var 
j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var
 
h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){
 return 
a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown
 
form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use
 strict";function b(b,d){return this.each(function(){var 
e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof
 b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof 
b?f[b](d):g.show&&f.show(d)})}var 
c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.1",c.TRANSITION_DURATI
 
ON=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return
 this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var 
d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var
 
e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var
 
f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigge
 
r(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off
 
("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var
 
a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var
 
d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var
 f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop 
'+e+'" 
/>').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("
 
bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else
 if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var 
g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else
 
b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var
 
a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.
 
scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var
 
a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var
 
a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var
 b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var 
d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return
 
a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var
 
d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevente
 
d()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use
 strict";function b(b){return this.each(function(){var 
d=a(this),e=d.data("bs.tooltip"),f="object"==typeof 
b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.tooltip",e={}),e[g]||(e[g]=new
 c(this,f))):e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof 
b&&e[b]())})}var 
c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div
 class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div 
class="tooltip-inner"></div></div>',trigger:"hover 
focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport
 &&a(this.options.viewport.selector||this.options.viewport);for(var 
e=this.options.trigger.split(" "),f=e.length;f--;){var 
g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else
 if("manual"!=g){var 
h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return
 c.DEFAULTS},c.prototype.getOptions=function(b){return 
b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof
 
b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var
 b={},c=this.getDefaults();return 
this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter
 =function(b){var c=b instanceof 
this.constructor?b:a(b.currentTarget).data("bs."+this.type);return 
c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new 
this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var
 c=b instanceof 
this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new 
this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var
 
b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var
 d=a.
 
contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var
 
e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var
 h="function"==typeof 
this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var
 k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var 
n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var
 q=this
 .getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var 
a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var
 
d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var
 i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var 
k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var 
l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arr
 
ow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var
 
a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade
 in top bottom left right")},c.prototype.hide=function(b){function 
d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var
 e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return 
this.$element.trigger(g),g.isDefaultPrevented()?void 
0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var
 a=this.$element;(a.attr("title")||"string"!=typeof 
a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return
 this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var 
c=b[0],d=
 
"BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var
 
f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return
 
a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var
 e={top:0,left:0};if(!this.$viewport)return e;var 
f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var
 
h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var
 j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.w
 idth&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var 
a,b=this.$element,c=this.options;return 
a=b.attr("data-original-title")||("function"==typeof 
c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do 
a+=~~(1e6*Math.random());while(document.getElementById(a));return 
a},c.prototype.tip=function(){return 
this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return
 
this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var
 c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new 
this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var
 a=this;clearTimeout(this.timeout),this.hide(function(){a.$elemen
 t.off("."+a.type).removeData("bs."+a.type)})};var 
d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return
 a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return 
this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof 
b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.popover",e={}),e[g]||(e[g]=new
 c(this,f))):e||d.data("bs.popover",e=new c(this,f)),"string"==typeof 
b&&e[b]())})}var 
c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new 
Error("Popover requires 
tooltip.js");c.VERSION="3.3.1",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div
 class="popover" role="tooltip"><div class="arrow"></div><h3 
class="popover-title"></h3><div 
class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return
 c.DEFAULTS},c.pro
 totype.setContent=function(){var 
a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof
 c?"html":"append":"text"](c),a.removeClass("fade top bottom left right 
in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return
 this.getTitle()||this.getContent()},c.prototype.getContent=function(){var 
a=this.$element,b=this.options;return 
a.attr("data-content")||("function"==typeof 
b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return 
this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return
 this.$tip||(this.$tip=a(this.options.template)),this.$tip};var 
d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return
 a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var 
e=a.proxy(this.process
 
,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+"
 .nav li > 
a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function
 c(c){return this.each(function(){var 
d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof 
c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof 
c&&e[c]()})}b.VERSION="3.3.1",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return
 
this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var
 
b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var
 d=this;this.$body.find(this.selector).map(function(){var 
d=a(this),e=d.data("target")|
 |d.attr("href"),f=/^#./.test(e)&&a(e);return 
f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return
 
a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var
 
a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return
 g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return 
this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var
 
c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selec
 tor).parentsUntil(this.options.target,".active").removeClass("active")};var 
d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return
 
a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var
 b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function 
b(b){return this.each(function(){var 
d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof 
b&&e[b]()})}var 
c=function(b){this.element=a(b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.prototype.show=function(){var
 
b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var
 e=c.find(".active:last 
a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var
  
h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})
+})}}},c.prototype.activate=function(b,d,e){function 
f(){g.removeClass("active").find("> .dropdown-menu > 
.active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var
 g=d.find("> 
.active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> 
.fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var
 
d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return
 a.fn.tab=d,this};var 
e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use
 
 strict";function b(b){return this.each(function(){var 
d=a(this),e=d.data("bs.affix"),f="object"==typeof 
b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var 
c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.1",c.RESET="affix
 affix-top 
affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var
 
e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return
 c>e?"top":!1;if("bottom"==this.affixed)return 
null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var 
h=null==this.affixed,i=h?e:f.top,j=h?g:b;return 
null!=c&&c>=i?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(
 ){if(this.pinnedOffset)return 
this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var 
a=this.$target.scrollTop(),b=this.$element.offset();return 
this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var
 
b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof
 d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof 
f&&(f=d.bottom(this.$element));var 
h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var
 
i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var
 d
 
=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return
 
a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var
 
c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file

Added: incubator/samoa/site/assets/js/npm.js
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/assets/js/npm.js?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/assets/js/npm.js (added)
+++ incubator/samoa/site/assets/js/npm.js Sun Feb 22 13:41:20 2015
@@ -0,0 +1,13 @@
+// This file is autogenerated via the `commonjs` Grunt task. You can require() 
this file in a CommonJS environment.
+require('../../js/transition.js')
+require('../../js/alert.js')
+require('../../js/button.js')
+require('../../js/carousel.js')
+require('../../js/collapse.js')
+require('../../js/dropdown.js')
+require('../../js/modal.js')
+require('../../js/tooltip.js')
+require('../../js/popover.js')
+require('../../js/scrollspy.js')
+require('../../js/tab.js')
+require('../../js/affix.js')
\ No newline at end of file

Added: incubator/samoa/site/css/main.css
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/css/main.css?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/css/main.css (added)
+++ incubator/samoa/site/css/main.css Sun Feb 22 13:41:20 2015
@@ -0,0 +1,167 @@
+.highlight {
+  margin-bottom: 15px; }
+
+/**
+ * Syntax highlighting styles
+ */
+.highlight {
+  background: #fff; }
+  .highlight .c {
+    color: #998;
+    font-style: italic; }
+  .highlight .err {
+    color: #a61717;
+    background-color: #e3d2d2; }
+  .highlight .k {
+    font-weight: bold; }
+  .highlight .o {
+    font-weight: bold; }
+  .highlight .cm {
+    color: #998;
+    font-style: italic; }
+  .highlight .cp {
+    color: #999;
+    font-weight: bold; }
+  .highlight .c1 {
+    color: #998;
+    font-style: italic; }
+  .highlight .cs {
+    color: #999;
+    font-weight: bold;
+    font-style: italic; }
+  .highlight .gd {
+    color: #000;
+    background-color: #fdd; }
+  .highlight .gd .x {
+    color: #000;
+    background-color: #faa; }
+  .highlight .ge {
+    font-style: italic; }
+  .highlight .gr {
+    color: #a00; }
+  .highlight .gh {
+    color: #999; }
+  .highlight .gi {
+    color: #000;
+    background-color: #dfd; }
+  .highlight .gi .x {
+    color: #000;
+    background-color: #afa; }
+  .highlight .go {
+    color: #888; }
+  .highlight .gp {
+    color: #555; }
+  .highlight .gs {
+    font-weight: bold; }
+  .highlight .gu {
+    color: #aaa; }
+  .highlight .gt {
+    color: #a00; }
+  .highlight .kc {
+    font-weight: bold; }
+  .highlight .kd {
+    font-weight: bold; }
+  .highlight .kp {
+    font-weight: bold; }
+  .highlight .kr {
+    font-weight: bold; }
+  .highlight .kt {
+    color: #458;
+    font-weight: bold; }
+  .highlight .m {
+    color: #099; }
+  .highlight .s {
+    color: #d14; }
+  .highlight .na {
+    color: #008080; }
+  .highlight .nb {
+    color: #0086B3; }
+  .highlight .nc {
+    color: #458;
+    font-weight: bold; }
+  .highlight .no {
+    color: #008080; }
+  .highlight .ni {
+    color: #800080; }
+  .highlight .ne {
+    color: #900;
+    font-weight: bold; }
+  .highlight .nf {
+    color: #900;
+    font-weight: bold; }
+  .highlight .nn {
+    color: #555; }
+  .highlight .nt {
+    color: #000080; }
+  .highlight .nv {
+    color: #008080; }
+  .highlight .ow {
+    font-weight: bold; }
+  .highlight .w {
+    color: #bbb; }
+  .highlight .mf {
+    color: #099; }
+  .highlight .mh {
+    color: #099; }
+  .highlight .mi {
+    color: #099; }
+  .highlight .mo {
+    color: #099; }
+  .highlight .sb {
+    color: #d14; }
+  .highlight .sc {
+    color: #d14; }
+  .highlight .sd {
+    color: #d14; }
+  .highlight .s2 {
+    color: #d14; }
+  .highlight .se {
+    color: #d14; }
+  .highlight .sh {
+    color: #d14; }
+  .highlight .si {
+    color: #d14; }
+  .highlight .sx {
+    color: #d14; }
+  .highlight .sr {
+    color: #009926; }
+  .highlight .s1 {
+    color: #d14; }
+  .highlight .ss {
+    color: #990073; }
+  .highlight .bp {
+    color: #999; }
+  .highlight .vc {
+    color: #008080; }
+  .highlight .vg {
+    color: #008080; }
+  .highlight .vi {
+    color: #008080; }
+  .highlight .il {
+    color: #099; }
+
+#sidebar {
+  float: left;
+  background: #F6F9FB;
+  border: 1px solid #E1E1E1;
+  padding: 0px 10px 10px 0px;
+  margin-left: 0px; }
+
+#sidebar a.current {
+  color: #E00000; }
+
+#sidebar ul {
+  list-style: none;
+  font-size: 0.83em;
+  padding-left: 20px; }
+
+#sidebar ul li {
+  margin-top: 3px; }
+
+#aboutcontent {
+  width: 70%;
+  margin-top: 0px;
+  margin-left: 220px; }
+
+#footer {
+  font-size: 0.7em; }

Added: incubator/samoa/site/documentation/Adaptive-Model-Rules-Regressor.html
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Adaptive-Model-Rules-Regressor.html?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/documentation/Adaptive-Model-Rules-Regressor.html 
(added)
+++ incubator/samoa/site/documentation/Adaptive-Model-Rules-Regressor.html Sun 
Feb 22 13:41:20 2015
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+
+    <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="/assets/favicon.ico">
+
+    <title>Adaptive Model Rules Regressor</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Bootstrap theme -->
+    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="/assets/css/theme.css" rel="stylesheet">
+       
+       <link href="/css/main.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="/assets/js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+
+
+
+  <body>
+    <div class="container">
+        <!-- Fixed navbar -->
+    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/index.html">Apache SAMOA</a>
+        </div>
+        <div id="navbar" class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+            <li><a href="/index.html">Home</a></li>    
+                       <li><a 
href="/documentation/Home.html">Documentation</a></li>
+                       <li><a 
href="/documentation/Team.html">Contributors</a></li>
+                       <li><a href="/documentation/Bylaws.html">Bylaws</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </nav>
+
+
+
+
+      
+        <!-- Documentation -->
+<!-- <div class="container"> -->
+
+  <header class="post-header">
+    <h1 class="post-title">Adaptive Model Rules Regressor</h1>
+    <p class="post-meta"></p>
+  </header>
+
+  <article class="post-content">
+    <h3 id="adaptive-model-rules-regressor">Adaptive Model Rules Regressor</h3>
+
+<p><a 
href="http://www.ecmlpkdd2013.org/wp-content/uploads/2013/07/251.pdf";>Adaptive 
Model Rules (AMRules)</a> is an innovative algorithm for learning regression 
rules with streaming data. In AMRules, the rule model consists of a set of 
normal rules and a default rule (a rule with no features). Hoeffding bound is 
used to define a confidence interval to decide whether to expand a rule. If the 
ratio of the 2 largest standard deviation reduction (SDR) measure among all 
potential features of a rule is is within this  interval, the feature with the 
largest SDR will be added to the rule to expand it. If the default rule is 
expanded, it will become a normal rule and will be added to the model&#39;s 
rule set. A new default rule is initialized to replace the expanded one. A rule 
in the set might also be removed if the Page-Hinckley test indicates that its 
cumulative error exceed a threshold.</p>
+
+<h3 id="vertical-adaptive-model-rules-regressor">Vertical Adaptive Model Rules 
Regressor</h3>
+
+<p>Vertical Adaptive Model Rules Regressor (VAMR) is the vertical parallel 
implementation of AMRules in SAMOA. The diagram below shows the components of 
the implementation.
+<img src="images/vamr.png" alt="Vertical AMRules"></p>
+
+<p>The <em>Source PI</em> and <em>Evaluator PI</em> are components of the <a 
href="Prequential-Evaluation-Task.html">Prequential Evaluation task</a>. The 
<em>Source PI</em> produces the incoming instances while <em>Evaluator PI</em> 
reads prediction results from VAMR and reports their accuracy and 
throughput.</p>
+
+<p>The core of VAMR implementation consists of one <em>Model Aggregator 
PI</em> and multiple <em>Learner PIs</em>. Each <em>Learner PI</em> is 
responsible for training a subset of rules. The <em>Model Aggregator PI</em> 
manages the rule model (rule set and default rule) to compute the prediction 
results for incoming instances. It is also responsible for the training the 
default rule and creation of new rules. </p>
+
+<p>For each incoming instance from <em>Source PI</em>, <em>Model Aggregator 
PI</em> appies the current rule set to compute the prediction. The instance is 
also forwarded from <em>Model Aggregator PI</em> to the <em>Learner PI(s)</em> 
to train those rules that cover this instance. If an instance is not covered by 
any rule in the set, the default rule will be used for prediction and will also 
be trained with this instance. When the default rule expands and create a new 
rule, the new rule will be sent from <em>Model aggregator PI</em> to one of the 
<em>Learner PIs</em>. When the <em>Learner PIs</em> expand or remove a rule, an 
update message is also sent back to the <em>Model Aggregator PI</em>.</p>
+
+<p>The number of <em>Learner PIs</em> can be set with the <code>-p</code> 
option:</p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">PrequentialEvaluationTask -l 
(com.yahoo.labs.samoa.learners.classifiers.rules.VerticalAMRulesRegressor -p 4)
+</code></pre></div>
+<h3 id="horizontal-adaptive-model-rules-regressor">Horizontal Adaptive Model 
Rules Regressor</h3>
+
+<p>Horizontal Adaptive Model Rules Regressor (HAMR) is an extended 
implementation of VAMR. The components of a [[Prequential Evaluation 
task|Prequential Evaluation Task]] with HAMR are shown in the diagram below. 
+<img src="images/hamr.png" alt="Horizontal AMRules"></p>
+
+<p>In HAMR, the <em>Model Aggregator PI</em> is replicated, each processes 
only a partition of the incoming stream from <em>Source PI</em>. The default 
rule is moved from the <em>Model Aggregator PI</em> to a special <em>Learner 
PI</em>, called <em>Default Rule Learner PI</em>. This new PI is reposible for 
both the training and predicting steps for default rule. </p>
+
+<p>For each incoming instance from <em>Source PI</em>, <em>Model Aggregator 
PIs</em> apply the current rule set to compute the prediction. If the instance 
is covered by a rule in the set, its prediction is computed by the <em>Model 
Aggregator PI</em> and, then, it is forwarded to the <em>Learner PI(s)</em> for 
training. Otherwise, the instance is forwarded to <em>Default Rule Learner 
PI</em> for both prediction and training. </p>
+
+<p>Newly created rules are sent from <em>Default Rule Learner PI</em> to all 
<em>Model Aggregator PIs</em> and one of the <em>Learner PIs</em>. Update 
messages are also sent from <em>Learner PIs</em> to all <em>Model Aggregator 
PIs</em> when a rule is expanded or removed.</p>
+
+<p>The number of <em>Learner PIs</em> can be set with the <code>-p</code> 
option and the number of <em>Model Aggregator PIs</em> can be set with the 
<code>-r</code> option:</p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">PrequentialEvaluationTask -l 
(com.yahoo.labs.samoa.learners.classifiers.rules.HorizontalAMRulesRegressor -r 
4 -p 2)
+</code></pre></div>
+  </article>
+
+<!-- </div> -->
+
+      
+
+    <hr/>
+<div id="footer" class="container text-center">
+       
+            <p class="text-muted credit"><p>
+Copyright © 2014 <a href="http://www.apache.org";>Apache Software 
Foundation</a>. All Rights Reserved. Apache SAMOA, Apache, and the Apache 
feather logo  are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+
+</div>
+
+    <!-- Bootstrap core JavaScript
+    ================================================== -->
+    <!-- Placed at the end of the document so the pages load faster -->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";></script>
+    <script src="/assets/js/bootstrap.min.js"></script>
+    <script src="/assets/js/docs.min.js"></script>
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <script src="/assets/js/ie10-viewport-bug-workaround.js"></script>
+
+    </div>
+       
+  </body>
+
+</html>

Added: incubator/samoa/site/documentation/Bagging-and-Boosting.html
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Bagging-and-Boosting.html?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/documentation/Bagging-and-Boosting.html (added)
+++ incubator/samoa/site/documentation/Bagging-and-Boosting.html Sun Feb 22 
13:41:20 2015
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+
+    <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="/assets/favicon.ico">
+
+    <title>Bagging and Boosting</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Bootstrap theme -->
+    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="/assets/css/theme.css" rel="stylesheet">
+       
+       <link href="/css/main.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="/assets/js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+
+
+
+  <body>
+    <div class="container">
+        <!-- Fixed navbar -->
+    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/index.html">Apache SAMOA</a>
+        </div>
+        <div id="navbar" class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+            <li><a href="/index.html">Home</a></li>    
+                       <li><a 
href="/documentation/Home.html">Documentation</a></li>
+                       <li><a 
href="/documentation/Team.html">Contributors</a></li>
+                       <li><a href="/documentation/Bylaws.html">Bylaws</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </nav>
+
+
+
+
+      
+        <!-- Documentation -->
+<!-- <div class="container"> -->
+
+  <header class="post-header">
+    <h1 class="post-title">Bagging and Boosting</h1>
+    <p class="post-meta"></p>
+  </header>
+
+  <article class="post-content">
+    <p>Ensemble methods are combinations of several models whose individual 
predictions are combined in some manner (e.g., averaging or voting) to form a 
final prediction. When tackling non-stationary concepts, ensembles of 
classifiers have several advantages over single classifier methods: they are 
easy to scale and parallelize, they can adapt to change quickly by pruning 
under-performing parts of the ensemble, and they therefore usually also 
generate more accurate concept descriptions.</p>
+
+<p>Bagging and boosting are traditional ensemble methods for streaming 
environments.
+It is possible to use the classifiers available in <a 
href="http://moa.cms.waikato.ac.nz";>MOA</a> by using the <a 
href="https://github.com/samoa-moa/samoa-moa";>SAMOA-MOA</a> adapter.</p>
+
+<h3 id="bagging">Bagging</h3>
+
+<p>You can use Bagging as a SAMOA learner, specifying the number of learners 
to use with parameter <code>-s</code> and the base learner to use with 
parameter <code>-l</code></p>
+
+<p><code>(classifiers.ensemble.Bagging -s 10 -l 
(classifiers.trees.VerticalHoeffdingTree))</code></p>
+
+<h6 id="only-with-samoa-moa-adapter">Only with SAMOA-MOA adapter</h6>
+
+<p><code>(classifiers.ensemble.Bagging -s 10 -l (classifiers.SingleClassifier 
-l (MOAClassifierAdapter -l moa.classifiers.trees.HoeffdingTree)))</code></p>
+
+<h3 id="adaptive-bagging">Adaptive Bagging</h3>
+
+<p>If data is evolving, it is better to use an adaptive version of bagging, 
where each base learner has a change detector that monitors its accuracy. When 
the accuracy of a base learner decreases, a new base learner is built to 
replace it.</p>
+
+<p><code>(classifiers.ensemble.AdaptiveBagging -s 10 -l 
(classifiers.trees.VerticalHoeffdingTree))</code></p>
+
+<h6 id="only-with-samoa-moa-adapter">Only with SAMOA-MOA adapter</h6>
+
+<p><code>(classifiers.ensemble.AdaptiveBagging -s 10 -l 
(classifiers.SingleClassifier -l 
(com.yahoo.labs.samoa.learners.classifiers.MOAClassifierAdapter -l 
moa.classifiers.trees.HoeffdingTree)))</code></p>
+
+<h3 id="boosting">Boosting</h3>
+
+<p>Boosting is a well known ensemble method, that has a very good performance 
in non-streaming setting. SAMOA implements the version of Oza and Russel 
(<em>Nikunj C. Oza, Stuart J. Russell: Experimental comparisons of online and 
batch versions of bagging and boosting. KDD 2001:359-364</em>)</p>
+
+<p><code>(classifiers.ensemble.Boosting -s 10 -l 
(classifiers.trees.VerticalHoeffdingTree))</code></p>
+
+<h6 id="only-with-samoa-moa-adapter">Only with SAMOA-MOA adapter</h6>
+
+<p><code>(classifiers.ensemble.Boosting -s 10 -l (classifiers.SingleClassifier 
-l (MOAClassifierAdapter -l moa.classifiers.trees.HoeffdingTree)))</code></p>
+
+  </article>
+
+<!-- </div> -->
+
+      
+
+    <hr/>
+<div id="footer" class="container text-center">
+       
+            <p class="text-muted credit"><p>
+Copyright © 2014 <a href="http://www.apache.org";>Apache Software 
Foundation</a>. All Rights Reserved. Apache SAMOA, Apache, and the Apache 
feather logo  are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+
+</div>
+
+    <!-- Bootstrap core JavaScript
+    ================================================== -->
+    <!-- Placed at the end of the document so the pages load faster -->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";></script>
+    <script src="/assets/js/bootstrap.min.js"></script>
+    <script src="/assets/js/docs.min.js"></script>
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <script src="/assets/js/ie10-viewport-bug-workaround.js"></script>
+
+    </div>
+       
+  </body>
+
+</html>

Added: incubator/samoa/site/documentation/Building-SAMOA.html
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Building-SAMOA.html?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/documentation/Building-SAMOA.html (added)
+++ incubator/samoa/site/documentation/Building-SAMOA.html Sun Feb 22 13:41:20 
2015
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html>
+
+    <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="/assets/favicon.ico">
+
+    <title>Building Apache SAMOA</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Bootstrap theme -->
+    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="/assets/css/theme.css" rel="stylesheet">
+       
+       <link href="/css/main.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="/assets/js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+
+
+
+  <body>
+    <div class="container">
+        <!-- Fixed navbar -->
+    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/index.html">Apache SAMOA</a>
+        </div>
+        <div id="navbar" class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+            <li><a href="/index.html">Home</a></li>    
+                       <li><a 
href="/documentation/Home.html">Documentation</a></li>
+                       <li><a 
href="/documentation/Team.html">Contributors</a></li>
+                       <li><a href="/documentation/Bylaws.html">Bylaws</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </nav>
+
+
+
+
+      
+        <!-- Documentation -->
+<!-- <div class="container"> -->
+
+  <header class="post-header">
+    <h1 class="post-title">Building Apache SAMOA</h1>
+    <p class="post-meta"></p>
+  </header>
+
+  <article class="post-content">
+    <p>To build SAMOA to run on local mode, on your own computer without a 
cluster, is simple as cloning the repository and installing it.</p>
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">git 
clone http://git.apache.org/incubator-samoa.git
+<span class="nb">cd </span>incubator-samoa
+mvn package
+</code></pre></div>
+<p>The deployable jar for SAMOA will be in 
<code>target/SAMOA-Local-0.3.0-SNAPSHOT.jar</code>.</p>
+
+<h3 id="storm">Storm</h3>
+
+<p>Simply clone the repository and install SAMOA.</p>
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">git 
clone http://git.apache.org/incubator-samoa.git
+<span class="nb">cd </span>incubator-samoa
+mvn -Pstorm package
+</code></pre></div>
+<p>The deployable jar for SAMOA will be in 
<code>target/SAMOA-Storm-0.3.0-SNAPSHOT.jar</code>.</p>
+
+<ul>
+<li><a href="Executing-SAMOA-with-Apache-Storm.html">1.1 Executing SAMOA with 
Apache Storm</a></li>
+</ul>
+
+<h3 id="s4">S4</h3>
+
+<p>If you want to compile SAMOA for Apache S4, you will need to install the S4 
dependencies manually as explained in <a 
href="Executing-SAMOA-with-Apache-S4.html">Executing SAMOA with Apache 
S4</a>.</p>
+
+<p>Once the dependencies are installed, you can simply clone the repository 
and install SAMOA.</p>
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">git 
clone http://git.apache.org/incubator-samoa.git
+<span class="nb">cd </span>incubator-samoa
+mvn -P&lt;variant&gt; package <span class="c"># where variant is 
&quot;storm&quot; or &quot;s4&quot;</span>
+
+mvn -Pstorm,s4 package <span class="c"># e.g., to get both versions</span>
+</code></pre></div>
+<p>The deployable jars for SAMOA will be in 
<code>target/SAMOA-&lt;variant&gt;-&lt;version&gt;-SNAPSHOT.jar</code>. For 
example, for S4 <code>target/SAMOA-S4-0.3.0-SNAPSHOT.jar</code>.</p>
+
+<ul>
+<li><a href="Executing-SAMOA-with-Apache-S4.html">1.2 Executing SAMOA with 
Apache S4</a></li>
+</ul>
+
+  </article>
+
+<!-- </div> -->
+
+      
+
+    <hr/>
+<div id="footer" class="container text-center">
+       
+            <p class="text-muted credit"><p>
+Copyright © 2014 <a href="http://www.apache.org";>Apache Software 
Foundation</a>. All Rights Reserved. Apache SAMOA, Apache, and the Apache 
feather logo  are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+
+</div>
+
+    <!-- Bootstrap core JavaScript
+    ================================================== -->
+    <!-- Placed at the end of the document so the pages load faster -->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";></script>
+    <script src="/assets/js/bootstrap.min.js"></script>
+    <script src="/assets/js/docs.min.js"></script>
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <script src="/assets/js/ie10-viewport-bug-workaround.js"></script>
+
+    </div>
+       
+  </body>
+
+</html>

Added: incubator/samoa/site/documentation/Bylaws.html
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Bylaws.html?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/documentation/Bylaws.html (added)
+++ incubator/samoa/site/documentation/Bylaws.html Sun Feb 22 13:41:20 2015
@@ -0,0 +1,325 @@
+<!DOCTYPE html>
+<html>
+
+    <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="/assets/favicon.ico">
+
+    <title>Apache SAMOA Bylaws</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Bootstrap theme -->
+    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="/assets/css/theme.css" rel="stylesheet">
+       
+       <link href="/css/main.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="/assets/js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+
+
+
+  <body>
+    <div class="container">
+        <!-- Fixed navbar -->
+    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/index.html">Apache SAMOA</a>
+        </div>
+        <div id="navbar" class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+            <li><a href="/index.html">Home</a></li>    
+                       <li><a 
href="/documentation/Home.html">Documentation</a></li>
+                       <li><a 
href="/documentation/Team.html">Contributors</a></li>
+                       <li><a href="/documentation/Bylaws.html">Bylaws</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </nav>
+
+
+
+
+      
+        <!-- Documentation -->
+<!-- <div class="container"> -->
+
+  <header class="post-header">
+    <h1 class="post-title">Apache SAMOA Bylaws</h1>
+    <p class="post-meta"></p>
+  </header>
+
+  <article class="post-content">
+    <h1 id="samoa-bylaws-(draft)">SAMOA Bylaws (Draft)</h1>
+
+<p>This document defines the bylaws under which the Apache SAMOA project 
operates.</p>
+
+<p>Apache SAMOA is a project of the Apache Software Foundation (ASF). The 
foundation holds the copyright on the code in the Apache SAMOA codebase. The 
foundation <a href="http://www.apache.org/foundation/faq.html";>FAQ</a> explains 
the operation and background of the foundation.</p>
+
+<p>Apache SAMOA is typical of Apache projects in that it operates under a set 
of principles, known collectively as the <em>Apache Way</em>. If you are new to 
Apache development, please refer to the <a 
href="http://incubator.apache.org";>Apache Incubator</a> for more information on 
how Apache projects operate.</p>
+
+<h2 id="roles-and-responsibilities">Roles and Responsibilities</h2>
+
+<p>Apache projects define a set of roles with associated rights and 
responsibilities. These roles govern which tasks an individual may perform 
within the project. The roles are defined in the following sections.</p>
+
+<h3 id="users:">Users:</h3>
+
+<p>The most important participants in the project are people who use our 
software. The majority of our developers start out as users and guide their 
development efforts from the user&#39;s perspective.</p>
+
+<p>Users contribute to Apache projects by providing feedback to developers in 
the form of bug reports and feature suggestions. In addition, users participate 
in the Apache community by helping other users on mailing lists and user 
support forums.</p>
+
+<h3 id="contributors:">Contributors:</h3>
+
+<p>All of the volunteers who are contributing time, code, documentation, or 
resources to the SAMOA project. A contributor that makes sustained, welcome 
contributions to the project may be invited to become a Committer, though the 
exact timing of such invitations depends on many factors.</p>
+
+<h3 id="committers:">Committers:</h3>
+
+<p>The project&#39;s Committers are responsible for the project&#39;s 
technical management. Committers have access to all project source 
repositories. Committers may cast binding votes on any technical discussion 
regarding SAMOA.</p>
+
+<p>Committer access is by invitation only and must be approved by lazy 
consensus of the active PMC members. A Committer is considered emeritus by 
their own declaration or by not contributing in any form to the project for 
over six months. An emeritus Committer may request reinstatement of commit 
access from the PMC. Such reinstatement is subject to lazy consensus approval 
of active PMC members.</p>
+
+<p>All Apache Committers are required to have a signed <a 
href="http://www.apache.org/licenses/icla.txt";>Contributor License Agreement 
(CLA)</a> on file with the Apache Software Foundation. There is a <a 
href="http://www.apache.org/dev/committers.html";>Committer FAQ</a> which 
provides more details on the requirements for Committers</p>
+
+<p>A Committer who makes a sustained contribution to the project may be 
invited to become a member of the PMC. The form of contribution is not limited 
to code. It can also include other activities such as code review, helping out 
users on the mailing lists, documentation, and testing.</p>
+
+<h3 id="project-management-committee-(pmc):">Project Management Committee 
(PMC):</h3>
+
+<p>The PMC is responsible to the board and the ASF for the management and 
oversight of the Apache SAMOA codebase. The responsibilities of the PMC 
include</p>
+
+<ul>
+<li>Deciding what is distributed as products of the Apache SAMOA project. In 
particular all releases must be approved by the PMC.</li>
+<li>Maintaining the project&#39;s shared resources, including the codebase 
repository, mailing lists, websites.</li>
+<li>Speaking on behalf of the project.</li>
+<li>Resolving license disputes regarding products of the project.</li>
+<li>Nominating new PMC members and Committers.</li>
+<li>Maintaining these bylaws and other guidelines of the project.</li>
+</ul>
+
+<p>Membership of the PMC is by invitation only and must be approved by 
consensus approval of the active PMC members. A PMC member is considered 
&quot;emeritus&quot; by their own declaration or by not contributing in any 
form to the project for over six months. An emeritus member may request 
reinstatement to the PMC. Such reinstatement is subject to consensus approval 
of the active PMC members.</p>
+
+<p>The chair of the PMC is appointed by the ASF board. The chair is an office 
holder of the Apache Software Foundation (Vice President, Apache SAMOA) and has 
primary responsibility to the board for the management of the projects within 
the scope of the SAMOA PMC. The chair reports to the board quarterly on 
developments within the SAMOA project.</p>
+
+<p>The chair of the PMC is rotated annually. When the chair is rotated, or if 
the current chair of the PMC resigns, the PMC votes to recommend a new chair 
using <a href="http://wiki.apache.org/general/BoardVoting";>Single Transferable 
Vote (STV)</a> voting. The decision must be ratified by the ASF board.</p>
+
+<h2 id="voting">Voting</h2>
+
+<p>Decisions regarding the project are made by votes on the primary project 
development mailing list (<a 
href="mailto:[email protected]";>[email protected]</a>).
 Where necessary, PMC voting may take place on the private SAMOA PMC mailing 
list. Votes are clearly indicated by subject line starting with [VOTE]. Votes 
may contain multiple items for approval and these should be clearly separated. 
Voting is carried out by replying to the vote mail. Voting may take four 
flavors.</p>
+
+<table><thead>
+<tr>
+<th>Vote</th>
+<th>Meaning</th>
+</tr>
+</thead><tbody>
+<tr>
+<td>+1</td>
+<td>&#39;Yes&#39;, &#39;Agree&#39;, or &#39;the action should be 
performed&#39;.</td>
+</tr>
+<tr>
+<td>+0</td>
+<td>Neutral about the proposed action (or mildly negative but not enough so to 
want to block it).</td>
+</tr>
+<tr>
+<td>-1</td>
+<td>This is a negative vote. On issues where consensus is required, this vote 
counts as a veto. All vetoes must contain an explanation of why the veto is 
appropriate. Vetoes with no explanation are void. It may also be appropriate 
for a -1 vote to include an alternative course of action.</td>
+</tr>
+</tbody></table>
+
+<p>All participants in the SAMOA project are encouraged to show their 
agreement with or against a particular action by voting. For technical 
decisions, only the votes of active Committers are binding. Non-binding votes 
are still useful for those with binding votes to understand the perception of 
an action in the wider SAMOA community. For PMC decisions, only the votes of 
active PMC members are binding.</p>
+
+<p>Voting can also be applied to changes already made to the SAMOA codebase. 
These typically take the form of a veto (-1) in reply to the commit message 
sent when the commit is made. Note that this should be a rare occurrence. All 
efforts should be made to discuss issues when they are still patches before the 
code is committed.</p>
+
+<p>Only active (i.e., non-emeritus) Committers and PMC members have binding 
votes.</p>
+
+<h2 id="approvals">Approvals</h2>
+
+<p>These are the types of approval that can be sought. Different actions 
require different types of approval.</p>
+
+<table><thead>
+<tr>
+<th>Approval</th>
+<th>Requirements</th>
+</tr>
+</thead><tbody>
+<tr>
+<td>Consensus</td>
+<td>requires all binding-vote holders to cast +1 votes and no binding -1 
vetoes (consensus votes are rarely required due to the impracticality of 
getting all eligible voters to cast a vote).</td>
+</tr>
+<tr>
+<td>2/3 Majority</td>
+<td>requires at least 2/3 of binding-vote holders to cast +1 votes. (2/3 
majority is typically used for actions that affect the foundation of the 
project, e.g., adopting a new codebase to replace an existing product).</td>
+</tr>
+<tr>
+<td>Lazy Consensus</td>
+<td>requires 2 binding +1 votes and no -1 votes (&#39;silence gives 
assent&#39;).</td>
+</tr>
+<tr>
+<td>Lazy Majority</td>
+<td>requires 3 binding +1 votes and more binding +1 votes than -1 vetoes.</td>
+</tr>
+<tr>
+<td>Lazy 2/3 Majority</td>
+<td>requires at least 3 votes and twice as many +1 votes as -1 vetoes.</td>
+</tr>
+</tbody></table>
+
+<h3 id="vetoes">Vetoes</h3>
+
+<p>A valid, binding veto cannot be overruled. If a veto is cast, it must be 
accompanied by a valid reason explaining the reasons for the veto. The validity 
of a veto, if challenged, can be confirmed by anyone who has a binding vote. 
This does not necessarily signify agreement with the veto - merely that the 
veto is valid.</p>
+
+<p>If you disagree with a valid veto, you must lobby the person casting the 
veto to withdraw their veto. If a veto is not withdrawn, any action that has 
been vetoed must be reversed in a timely manner.</p>
+
+<h2 id="actions">Actions</h2>
+
+<p>This section describes the various actions which are undertaken within the 
project, the corresponding approval required for that action and those who have 
binding votes over the action.</p>
+
+<table><thead>
+<tr>
+<th>Action</th>
+<th>Description</th>
+<th>Approval</th>
+<th>Binding Votes</th>
+<th>Minimum Length</th>
+<th>Mailing List</th>
+</tr>
+</thead><tbody>
+<tr>
+<td>Code Change</td>
+<td>A change made to a codebase of the project and committed by a committer. 
This includes source code, documentation, and website content.</td>
+<td>Lazy Consensus (with at least one +1 vote from someone who has not 
authored the patch). The code can be committed as soon as the required number 
of binding votes is reached.</td>
+<td>Active Committers</td>
+<td>1 day</td>
+<td>JIRA or GitHub pull request (with notification sent to dev@)</td>
+</tr>
+<tr>
+<td>Release Plan</td>
+<td>Defines the timetable and actions for a release. The plan also nominates a 
Release Manager.</td>
+<td>Lazy Majority</td>
+<td>Active Committers</td>
+<td>3 days</td>
+<td>dev@</td>
+</tr>
+<tr>
+<td>Product Release</td>
+<td>Accepting the official release of a product of the project.</td>
+<td>Lazy Majority</td>
+<td>Active PMC members</td>
+<td>3 days</td>
+<td>dev@</td>
+</tr>
+<tr>
+<td>Adoption of New Codebase</td>
+<td>Replacing the codebase for an existing, released product with an 
alternative codebase. If such a vote fails to gain approval, the existing code 
base will continue. This action also covers the creation of new sub-projects 
and sub-modules within the project.</td>
+<td>Lazy 2/3 Majority</td>
+<td>Active PMC members</td>
+<td>7 days</td>
+<td>dev@</td>
+</tr>
+<tr>
+<td>New Committer</td>
+<td>Electing a new Committer for the project.</td>
+<td>Lazy Consensus</td>
+<td>Active PMC members</td>
+<td>7 days</td>
+<td>private@</td>
+</tr>
+<tr>
+<td>New PMC Member</td>
+<td>Promoting a Committer to the PMC of the project.</td>
+<td>Consensus</td>
+<td>Active PMC members</td>
+<td>7 days</td>
+<td>private@</td>
+</tr>
+<tr>
+<td>Emeritus PMC Member re-instatement</td>
+<td>When an emeritus PMC member requests to be re-instated as an active PMC 
member.</td>
+<td>Consensus</td>
+<td>Active PMC members</td>
+<td>7 days</td>
+<td>private@</td>
+</tr>
+<tr>
+<td>Emeritus Committer re-instatement</td>
+<td>When an emeritus Committer requests to be re-instated as an active 
committer.</td>
+<td>Consensus</td>
+<td>Active PMC members</td>
+<td>7 days</td>
+<td>private@</td>
+</tr>
+<tr>
+<td>Committer Removal</td>
+<td>When removal of commit privileges is sought. Note: Such actions will also 
be referred to the ASF board by the PMC chair.</td>
+<td>Consensus</td>
+<td>Active PMC members (excluding the committer in question if member of the 
PMC)</td>
+<td>7 Days</td>
+<td>private@</td>
+</tr>
+<tr>
+<td>PMC Member Removal</td>
+<td>When removal of a PMC member is sought. Note: Such actions will also be 
referred to the ASF board by the PMC chair.</td>
+<td>Consensus</td>
+<td>Active PMC members (excluding the member in question)</td>
+<td>7 Days</td>
+<td>private@</td>
+</tr>
+<tr>
+<td>Modifying Bylaws</td>
+<td>Modifying this document.</td>
+<td>2/3 Majority</td>
+<td>Active PMC members</td>
+<td>7 Days</td>
+<td>dev@</td>
+</tr>
+</tbody></table>
+
+  </article>
+
+<!-- </div> -->
+
+      
+
+    <hr/>
+<div id="footer" class="container text-center">
+       
+            <p class="text-muted credit"><p>
+Copyright © 2014 <a href="http://www.apache.org";>Apache Software 
Foundation</a>. All Rights Reserved. Apache SAMOA, Apache, and the Apache 
feather logo  are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+
+</div>
+
+    <!-- Bootstrap core JavaScript
+    ================================================== -->
+    <!-- Placed at the end of the document so the pages load faster -->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";></script>
+    <script src="/assets/js/bootstrap.min.js"></script>
+    <script src="/assets/js/docs.min.js"></script>
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <script src="/assets/js/ie10-viewport-bug-workaround.js"></script>
+
+    </div>
+       
+  </body>
+
+</html>

Added: incubator/samoa/site/documentation/Content-Event.html
URL: 
http://svn.apache.org/viewvc/incubator/samoa/site/documentation/Content-Event.html?rev=1661475&view=auto
==============================================================================
--- incubator/samoa/site/documentation/Content-Event.html (added)
+++ incubator/samoa/site/documentation/Content-Event.html Sun Feb 22 13:41:20 
2015
@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<html>
+
+    <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+    <link rel="icon" href="/assets/favicon.ico">
+
+    <title>Content Event</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+    <!-- Bootstrap theme -->
+    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="/assets/css/theme.css" rel="stylesheet">
+       
+       <link href="/css/main.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
+    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+    <script src="/assets/js/ie-emulation-modes-warning.js"></script>
+
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
+    <!--[if lt IE 9]>
+      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
+      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
+    <![endif]-->
+  </head>
+
+
+
+  <body>
+    <div class="container">
+        <!-- Fixed navbar -->
+    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar">
+            <span class="sr-only">Toggle navigation</span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+            <span class="icon-bar"></span>
+          </button>
+          <a class="navbar-brand" href="/index.html">Apache SAMOA</a>
+        </div>
+        <div id="navbar" class="navbar-collapse collapse">
+          <ul class="nav navbar-nav">
+            <li><a href="/index.html">Home</a></li>    
+                       <li><a 
href="/documentation/Home.html">Documentation</a></li>
+                       <li><a 
href="/documentation/Team.html">Contributors</a></li>
+                       <li><a href="/documentation/Bylaws.html">Bylaws</a></li>
+          </ul>
+        </div><!--/.nav-collapse -->
+      </div>
+    </nav>
+
+
+
+
+      
+        <!-- Documentation -->
+<!-- <div class="container"> -->
+
+  <header class="post-header">
+    <h1 class="post-title">Content Event</h1>
+    <p class="post-meta"></p>
+  </header>
+
+  <article class="post-content">
+    <p>A message or an event is called Content Event in SAMOA. As the name 
suggests, it is an event which contains content which needs to be processed by 
the processors.</p>
+
+<h3 id="1.-implementation">1. Implementation</h3>
+
+<p>ContentEvent has been implemented as an interface in SAMOA. Users need to 
implement <code>ContentEvent</code> interface to create their custom message 
classes. As it can be seen in the following code, key is the necessary part of 
a message.</p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">package com.yahoo.labs.samoa.core;
+
+public interface ContentEvent extends java.io.Serializable {
+
+    public String getKey();
+
+    public void setKey(String str);
+
+    public boolean isLastEvent();
+}
+</code></pre></div>
+<h3 id="2.-methods">2. Methods</h3>
+
+<p>Following is a brief description of methods.</p>
+
+<h5 id="2.1-string-getkey()">2.1 <code>String getKey()</code></h5>
+
+<p>Each message is identified by a key in SAMOA. All user-defined message 
classes should have a key state variable. Each instance of the custom message 
should be assigned a key. This method should return the key of the respective 
message.</p>
+
+<h5 id="2.2-void-setkey(string-str)">2.2 <code>void setKey(String 
str)</code></h5>
+
+<p>This method is used to assign a key to the message.</p>
+
+<h5 id="2.3-boolean-islastevent()">2.3 <code>boolean isLastEvent()</code></h5>
+
+<p>This method lets SAMOA know that this message is the last message.</p>
+
+<h3 id="3.-example">3. Example</h3>
+
+<p>Following is the example of a <code>Message</code> class which implements 
<code>ContentEvent</code> interface. As <code>ContentEvent</code> is an 
interface, it can not hold variables. A user-defined message class should have 
its own data variables and its getter methods. In the following example, 
<code>value</code> variable of type <code>Object</code> is added to the class. 
Using a generic type <code>Object</code> is beneficial in the sense that any 
object can be passed to it and later it can be casted back to the original 
type. The following example also adds a <code>streamId</code> variable which 
stores the <code>id</code> of the stream the message belongs to. This is not a 
requirement but can be beneficial in certain applications.</p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">import com.yahoo.labs.samoa.core.ContentEvent;
+
+/**
+ * A general key-value message class which adds a stream id in the class 
variables
+ * Stream id information helps in determining to which stream does the message 
belongs to.
+ */
+public class Message implements ContentEvent {
+
+    /**
+     * To tell if the message is the last message of the stream. This may be 
required in some applications where
+     * a stream can cease to exist
+     */
+    private boolean last=false;
+    /**
+     * Id of the stream to which the message belongs
+     */
+    private String streamId;
+    /**
+     * The key of the message. Can be any sting value. Duplicates are allowed.
+     */
+    private String key;
+    /**
+     * The value of the message. Can be any object. Casting may be necessary 
to the desired type.
+     */
+    private Object value;
+
+    public Message()
+    {}
+
+    /**
+     * @param key
+     * @param value
+     * @param isLastEvent
+     * @param streamId
+     */
+    public Message(String key, Object value, boolean isLastEvent, String 
streamId)
+    {
+        this.key=key;
+        this.value = value;
+        this.last = isLastEvent;
+        this.streamId=streamId;
+    }
+
+    @Override
+    public String getKey() {
+        return key;
+    }
+
+    @Override
+    public void setKey(String str) {
+        this.key = str;
+    }
+
+    @Override
+    public boolean isLastEvent() {
+        return last;
+    }
+
+    /**
+     * @return value of the message
+     */
+    public String getValue()
+    {
+        return value.toString();
+    }
+
+    /**
+     * @return id of the stream to which the message belongs
+     */
+    public String getStreamId() {
+        return streamId;
+    }
+    /**
+     * @param streamId
+     */
+    public void setStreamId(String streamId) {
+        this.streamId = streamId;
+    }
+
+}
+</code></pre></div>
+  </article>
+
+<!-- </div> -->
+
+      
+
+    <hr/>
+<div id="footer" class="container text-center">
+       
+            <p class="text-muted credit"><p>
+Copyright © 2014 <a href="http://www.apache.org";>Apache Software 
Foundation</a>. All Rights Reserved. Apache SAMOA, Apache, and the Apache 
feather logo  are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective 
owners.</p>
+
+</div>
+
+    <!-- Bootstrap core JavaScript
+    ================================================== -->
+    <!-- Placed at the end of the document so the pages load faster -->
+    <script 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";></script>
+    <script src="/assets/js/bootstrap.min.js"></script>
+    <script src="/assets/js/docs.min.js"></script>
+    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
+    <script src="/assets/js/ie10-viewport-bug-workaround.js"></script>
+
+    </div>
+       
+  </body>
+
+</html>


Reply via email to