code: @Override
  	public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
  		if (!component.isRendered()) {
  			return;
  		}
  
  		Carousel carousel = (Carousel) component;
  		ResponseWriter rw = context.getResponseWriter();
  		rw.endElement("div");
  		String clientId = super.escapeClientId(component.getClientId());
  
  		if (!carousel.isDisabled()) {
  			if (carousel.isShowControls()) {
  				CarouselControlRenderer ccr = new CarouselControlRenderer();
  				boolean foundCustomControl = false;
  				List<UIComponent> children = carousel.getChildren();
  				for (UIComponent c : children) {
  					if (c instanceof CarouselControl) {
  						foundCustomControl = true;
  						ccr.myEncodeBegin(context, c);
  						ccr.myEncodeEnd(context, c);
  					}
  				}
  				if (!foundCustomControl) {
  					ccr.encodeDefaultControls(context, component, clientId);
  				}
  			}
  		}
  
  		rw.endElement("div");
  		new AJAXRenderer().generateBootsFacesAJAXAndJavaScriptForJQuery(context, component, rw, "#"+clientId, null);
  
  		Tooltip.activateTooltips(context, carousel);
                  
                  endResponsiveWrapper(component, rw);
  	}
docs: This methods generates the HTML code of the current b:carousel.
  <code>encodeBegin</code> generates the start of the component. After the,
  the JSF framework calls <code>encodeChildren()</code> to generate the
  HTML code between the beginning and the end of the component. For
  instance, in the case of a panel component the content of the panel is
  generated by <code>encodeChildren()</code>. After that,
  <code>encodeEnd()</code> is called to generate the rest of the HTML code.
  
  @param context
  the FacesContext.
  @param component
  the current b:carousel.
  @throws IOException
  thrown if something goes wrong when writing the HTML code.