text:
<!DOCTYPE HTML>

    <meta charset="utf-8">
    <title></title>
    <link href='http://fonts.googleapis.com/css?family=Quattrocento+Sans' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" type="text/css" href="/css/cheeky.css" media="screen">
    <link rel="stylesheet" type="text/css" href="/css/main.css" media="screen">

Kona

Links

Getting Started

Tutorials

Demos

API Reference

A scene represents a distinct game state, such as a menu or a level screen.

Entities are added to a particular scene using a grid-like configuration layout, which corresponds to a definition map.

The engine will take care of rendering the current scene, including updating and drawing its associated entities, although scene transitions must be specified manually - see 'Scene transitions' below.

The definition map

The definition map is a set of rules mapping identifiers to objects for initializing scenes and entities.

In human terms, it allows you to define your game scenes/levels using an intuitive grid format,
and the engine will automatically construct and place entities for you.

The map is a key-value listing of rules, which are explained in the terminology section.

You must set Kona.Scenes.definitionMap to contain your configuration.

Terminology:

Rule: an key-value pair specifying an identifier and the object it creates

Identifier: a string representing an object. Ex: '-' could represent a blank tile, and 'x' an Enemy.

Entity constructor arguments:

The 'value' of a key-value rule is itself a key-value list of arguments.

group (String) - The group this entity belongs to. See 'Entity Groups' below.

entity (Object) - The entity class to instantiate. Ex: Kona.Tile or Enemy

opts (Object) - Optional arguments that will be passed to the entity constructor when it is called.

An example map might look like this:

Kona.Scenes.definitionMap = {
  '-': { group: 'tiles',   entity: Kona.BlankTile }
  'r': { group: 'tiles',   entity: Kona.Tile, opts: { sprite: 'img/dirt.png' } }
  'x': { group: 'enemies', entity: Enemy,     opts: { width: 30, height: 55 } }
  'c': { group: 'coins',   entity: Coin,      opts: { width: 30, height: 30 } }
}

We will see how the map is put to use in the next section.

## Constructing a scene and loading entities
A scene must be constructed before its entities can be loaded. In this example, we'll construct and load entities for the first screen of the first level.
A string name is required for each scene. background specifies an optional background image path, and the active boolean is used to indicate the first scene to render after starting the engine. The active parameter can be omitted and does not have to be explicitly set to false - just make sure one of your scenes is active when you start the engine.

level1_1 = new Kona.Scene {
  name: 'lvl1:s1'
  background: 'lvl1.jpg'
  active: true # Since it's marked as active, this scene will be the first to show
}

Entities are loaded using a call to loadEntities(grid), where scene is some pre-constructed scene object.
  * grid: (Array) - A two dimensional array ('grid') of values to load into the scene.
    All values must correspond to rules in the definition map, explained previously.

An example grid might look something like this:

level1_1.loadEntities [
  ['-','-','-','-','-',],
  ['r','b','-','-','-',],
  ['o','-','-','-','-',],
  ['r','-','c','-','-',],
  ['b','o','r','b','r',]
]

Entity instances can also be manually added to a scene using addEntity(). Ex: Kona.Scenes.currentScene.addEntity(player)

This is useful is you want to keep a reference to the entity around for scripting. In the example above, we add the player to the scene and can then write code such as Kona.Keys.bind 'space', -> player.fire()

Entity groups

Each scene internally keeps track of a list of associated entities. These entities are divided into named groups. Example groups might consist of tiles, enemies, collectables, etc. All entities in all groups will be automatically updated and rendered by the engine, but this gives a useful handle to the developer for access or scripting. An entity is required to belong to a specific group - see the group field of the definition map.

Groups have many uses and make tasks much easier - for example, entities in the player group can be scripted to only be able to destroy entities in the enemies group. Additionally, groups are used internally to keep track of Collectors, which are entities that are allowed to 'pick up' collectables such as powerups.

Scene transitions

Once you have constructed all of the scenes for your game and loaded their entities, you will need to make the calls to transition between them at the appropriate time.

Manually

You can manually transition to any scene by calling Kona.Scenes.setCurrent(sceneName). For example, you could bind the escape key to Kona.Scenes.setCurrent('pauseMenu').

Using next()


text:
"""
====================================================================
Decoding in sensor space data using the Common Spatial Pattern (CSP)
====================================================================

Decoding applied to MEG data in sensor space decomposed using CSP.
Here the classifier is applied to features extracted on CSP filtered signals.

See http://en.wikipedia.org/wiki/Common_spatial_pattern and [1]_.

References
----------

.. [1] Zoltan J. Koles. The quantitative extraction and topographic mapping
       of the abnormal components in the clinical EEG. Electroencephalography
       and Clinical Neurophysiology, 79(6):440--447, December 1991.
"""
# Authors: Alexandre Gramfort <alexandre.gramfort@telecom-paristech.fr>
#          Romain Trachel <romain.trachel@inria.fr>
#
# License: BSD (3-clause)

import numpy as np
import matplotlib.pyplot as plt

import mne
from mne import io
from mne.datasets import sample

print(__doc__)

data_path = sample.data_path()

###############################################################################
# Set parameters and read data
raw_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw.fif'
event_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif'
tmin, tmax = -0.2, 0.5
event_id = dict(aud_l=1, vis_l=3)

# Setup for reading the raw data
raw = io.read_raw_fif(raw_fname, preload=True)
raw.filter(2, None)  # replace baselining with high-pass
events = mne.read_events(event_fname)

raw.info['bads'] = ['MEG 2443']  # set bad channels
picks = mne.pick_types(raw.info, meg='grad', eeg=False, stim=False, eog=False,
                       exclude='bads')

# Read epochs
epochs = mne.Epochs(raw, events, event_id, tmin, tmax, proj=True,
                    picks=picks, baseline=None, preload=True)

labels = epochs.events[:, -1]
evoked = epochs.average()

###############################################################################
# Decoding in sensor space using a linear SVM

from sklearn.svm import SVC  # noqa
from sklearn.cross_validation import ShuffleSplit  # noqa
from mne.decoding import CSP  # noqa

n_components = 3  # pick some components
svc = SVC(C=1, kernel='linear')
csp = CSP(n_components=n_components)

# Define a monte-carlo cross-validation generator (reduce variance):
cv = ShuffleSplit(len(labels), 10, test_size=0.2, random_state=42)
scores = []
epochs_data = epochs.get_data()

for train_idx, test_idx in cv:
    y_train, y_test = labels[train_idx], labels[test_idx]

    X_train = csp.fit_transform(epochs_data[train_idx], y_train)
    X_test = csp.transform(epochs_data[test_idx])

    # fit classifier
    svc.fit(X_train, y_train)

    scores.append(svc.score(X_test, y_test))

# Printing the results
class_balance = np.mean(labels == labels[0])
class_balance = max(class_balance, 1. - class_balance)
print("Classification accuracy: %f / Chance level: %f" % (np.mean(scores),
                                                          class_balance))

# Or use much more convenient scikit-learn cross_val_score function using
# a Pipeline
from sklearn.pipeline import Pipeline  # noqa
from sklearn.cross_validation import cross_val_score  # noqa
cv = ShuffleSplit(len(labels), 10, test_size=0.2, random_state=42)
clf = Pipeline([('CSP', csp), ('SVC', svc)])
scores = cross_val_score(clf, epochs_data, labels, cv=cv, n_jobs=1)
print(scores.mean())  # should match results above

# And using reuglarized csp with Ledoit-Wolf estimator
csp = CSP(n_components=n_components, reg='ledoit_wolf')
clf = Pipeline([('CSP', csp), ('SVC', svc)])
scores = cross_val_score(clf, epochs_data, labels, cv=cv, n_jobs=1)
print(scores.mean())  # should get better results than above

# plot CSP patterns estimated on full data for visualization
csp.fit_transform(epochs_data, labels)
data = csp.patterns_
fig, axes = plt.subplots(1, 4)
for idx in range(4):
    mne.viz.plot_topomap(data[idx], evoked.info, axes=axes[idx], show=False)
fig.suptitle('CSP patterns')
fig.tight_layout()
fig.show()

redpajama_set_name: RedPajamaGithub


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;

namespace Newtonsoft.Json.Tests.Documentation.Samples.Linq
{
  public class ToStringJsonConverter
  {
    public void Example()
    {
      #region Usage
      JObject o = JObject.Parse(@"{'string1':'value','integer2':99,'datetime3':'2000-05-23T00:00:00'}");

      Console.WriteLine(o.ToString(Formatting.None, new JavaScriptDateTimeConverter()));
      // {"string1":"value","integer2":99,"datetime3":new Date(959032800000)}
      #endregion
    }
  }
}


text:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Philip Papadopoulos | Gregor von Laszewski</title>
    <link>/author/philip-papadopoulos/</link>
      <atom:link href="/author/philip-papadopoulos/index.xml" rel="self" type="application/rss+xml" />
    <description>Philip Papadopoulos</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Sun, 01 Jan 2017 00:00:00 +0000</lastBuildDate>
    <image>
      <url>/images/icon_hufdd866d90d76849587aac6fbf27da1ac_464_512x512_fill_lanczos_center_3.png</url>
      <title>Philip Papadopoulos</title>
      <link>/author/philip-papadopoulos/</link>
    </image>

    <item>
      <title>Comet: Tales from the Long Tail: Two Years In and 10000 Users Later</title>
      <link>/publication/las-2017-comet/</link>
      <pubDate>Sun, 01 Jan 2017 00:00:00 +0000</pubDate>
      <guid>/publication/las-2017-comet/</guid>
      <description></description>
    </item>

    <item>
      <title>User Managed Virtual Clusters in Comet</title>
      <link>/publication/las-2016-virtcluster/</link>
      <pubDate>Fri, 01 Jul 2016 00:00:00 +0000</pubDate>
      <guid>/publication/las-2016-virtcluster/</guid>
      <description></description>
    </item>

  </channel>
</rss>


text:
package fr.liglab.adele.cream.test.proxy;

/**
 * Created by aygalinc on 09/09/16.
 */
public class pojo implements ServiceH {

    @Override
    public void setSomething() {
        System.out.println(" coucou ");
    }

    @Override
    public void getSomething() {
        System.out.println(" coucou 2");
    }

    @Override
    public void doSomething() {
        System.out.println(" coucou 3");
    }
}


text:
import url = require("url");
import restify = require('restify');

var log = require('winston');
log.level = 'error';

export var pipelineConfigServerPort = 8001;
export var frontdoorRestPort = 8000;

export var frontdoorStage = 'frontdoorStage';
export var frontdoorPort = 8080;
export var planStoreStage = 'planStoreStage';
export var planStorePorts = [8081, 8082];
export var countStoreStage = 'countStoreStage';
export var countStorePort = 8083;
export var processJavascriptStage = 'processJavascriptStage';
export var processJavascriptPorts = [8084, 8085];

export var pipelineConfigServerUrl = url.parse("http://localhost:" + pipelineConfigServerPort);

var anyMap = (nodes: string[], params: Object) => {
    return nodes[Math.floor(nodes.length * Math.random())];
}

var planMap = (nodes: string[], params: any) => {
    log.info('Plan map parameters are \r\n',params,'\r\n for ',nodes);
    var result = (params.operation && params.operation.toString() <= "middle") ? nodes[0] : nodes[1];
    log.info('Plan map returning address ', result);
    return result;
}

var config = {};

var pipelineConfig = this;

config[pipelineConfig.frontdoorStage] = { nodes: ['http://localhost:' + pipelineConfig.frontdoorPort], map: anyMap.toString() };
config[pipelineConfig.planStoreStage] = { nodes: ['http://localhost:' + pipelineConfig.planStorePorts[0], 'http://localhost:' + pipelineConfig.planStorePorts[1]], map: planMap.toString() };
config[pipelineConfig.countStoreStage] = { nodes: ['http://localhost:' + pipelineConfig.countStorePort], map: anyMap.toString() };
config[pipelineConfig.processJavascriptStage] = { nodes: ['http://localhost:' + pipelineConfig.processJavascriptPorts[0], 'http://localhost:' + pipelineConfig.processJavascriptPorts[1]], map: anyMap.toString() };

export function updateServer() {
    var configClient = restify.createJsonClient({ url: pipelineConfig.pipelineConfigServerUrl.href });

    log.info('Sending configuration to server');
    configClient.put('/config', config, (err, req, res, obj) => {
        if (err || res.statusCode != 201) throw 'could not put configuration';
    });
}


text:
namespace gui3ds {

Button::Button()
: m_autoSize(true)
, m_needsUpdate(true)
, m_active(false)
, m_backgroundColor(cpp3ds::Color::White)
{

}

void Button::draw(cpp3ds::RenderTarget &target, cpp3ds::RenderStates states) const
{
	ensureUpdate();

	states.transform *= getTransform();

	NinePatch::draw(target, states);
	if (!m_text.getString().isEmpty())
		target.draw(m_text, states);
}

void Button::setTextOffset(const cpp3ds::Vector2f& offset)
{
	m_textOffset = offset;
	m_needsUpdate = true;
}

const cpp3ds::Vector2f& Button::getTextOffset() const
{
	return m_textOffset;
}

void Button::setContentSize(const cpp3ds::Vector2f& size)
{
	NinePatch::setContentSize(size);
	m_autoSize = false;
}

void Button::setContentSize(float width, float height)
{
	NinePatch::setContentSize(width, height);
	m_autoSize = false;
}

const cpp3ds::Vector2f& Button::getContentSize() const
{
	ensureUpdate();
	return NinePatch::getContentSize();
}

const cpp3ds::Vector2f& Button::getSize() const
{
	ensureUpdate();
	return m_size;
}

void Button::setString(const cpp3ds::String& string)
{
	m_text.setString(string);
	m_needsUpdate = true;
}

const cpp3ds::String& Button::getString() const
{
	return m_text.getString();
}

void Button::setTextColor(const cpp3ds::Color& color)
{
	m_textColor = color;
	m_needsUpdate = true;
}

const cpp3ds::Color& Button::getTextColor() const
{
	return m_textColor;
}

void Button::setTextActiveColor(const cpp3ds::Color& color)
{
	m_textActiveColor = color;
	m_needsUpdate = true;
}

const cpp3ds::Color& Button::getTextActiveColor() const
{
	return m_textActiveColor;
}

void Button::setColor(const cpp3ds::Color& color)
{
	m_backgroundColor = color;
	m_needsUpdate = true;
}

const cpp3ds::Color& Button::getColor() const
{
	return m_backgroundColor;
}

void Button::setActiveColor(const cpp3ds::Color& color)
{
	m_backgroundActiveColor = color;
	m_needsUpdate = true;
}

const cpp3ds::Color& Button::getActiveColor() const
{
	return m_backgroundActiveColor;
}

void Button::autoSize()
{
	m_autoSize = true;
	m_needsUpdate = true;
}

bool Button::processEvent(const cpp3ds::Event &event)
{
	if (event.type == cpp3ds::Event::TouchBegan)
	{
		if (m_rect.contains(event.touch.x, event.touch.y))
		{
			m_active = true;
			m_needsUpdate = true;
			return false;
		}
	}

	if (event.type == cpp3ds::Event::TouchEnded)
	{
		if (m_active) {
			m_active = false;
			m_needsUpdate = true;
			if (m_clickFunction)
				m_clickFunction();
			return false;
		}
	}

	if (event.type == cpp3ds::Event::TouchMoved)
	{
		if (m_active) {
			if (!m_rect.contains(event.touch.x, event.touch.y)) {
				m_active = false;
				m_needsUpdate = true;
			}
			return false;
		}
	}

	return true;
}

void Button::ensureUpdate() const
{
	if (m_needsUpdate)
	{
		if (m_autoSize)
			NinePatch::setContentSize(cpp3ds::Vector2f(m_text.getLocalBounds().width, m_text.getLocalBounds().height));

		cpp3ds::FloatRect textBounds = m_text.getLocalBounds();
		cpp3ds::FloatRect padding = getPadding();
		cpp3ds::Vector2f contentSize = NinePatch::getContentSize();

		if (m_autoSize && getTexture()) {
			m_size.x = contentSize.x + getTexture()->getSize().x - padding.width;
			m_size.y = contentSize.y + getTexture()->getSize().y - padding.height;
		} else {
			m_size.x = contentSize.x - padding.width;
			m_size.y = contentSize.y - padding.height;
		}

		m_text.setOrigin(std::round(textBounds.left + textBounds.width/2),
		                 std::round(textBounds.top + textBounds.height/2));
		m_text.setPosition(std::round(padding.left + contentSize.x/2 + m_textOffset.x),
		                   std::round(padding.top + contentSize.y/2 + m_textOffset.y));

		if (m_active) {
			NinePatch::setColor(m_backgroundActiveColor);
			m_text.setFillColor(m_textActiveColor);
		} else {
			NinePatch::setColor(m_backgroundColor);
			m_text.setFillColor(m_textColor);
		}

		m_needsUpdate = false;
	}

	m_rect.left = getPosition().x;
	m_rect.top = getPosition().y;
	m_rect.width = m_size.x;
	m_rect.height = m_size.y;
}

void Button::onClick(const std::function<void()>& callback)
{
	m_clickFunction = callback;
}

int Button::getValues(int tweenType, float *returnValues)
{
	switch (tweenType) {
		case COLOR_RGB: {
			cpp3ds::Color color = getColor();
			returnValues[0] = color.r;
			returnValues[1] = color.g;
			returnValues[2] = color.b;
			return 3;
		}
		case COLOR_ALPHA: returnValues[0] = getColor().a; return 1;
		case CONTENT_X: returnValues[0] = getContentSize().x; return 1;
		case TEXTCOLOR_ALPHA: returnValues[0] = getTextColor().a; return 1;
		default:
			return TweenTransformable::getValues(tweenType, returnValues);
	}
}

void Button::setValues(int tweenType, float *newValues)
{
	switch (tweenType) {
		case COLOR_RGB: {
			cpp3ds::Color color;
			color.r = std::max(std::min(newValues[0], 255.f), 0.f);
			color.g = std::max(std::min(newValues[1], 255.f), 0.f);
			color.b = std::max(std::min(newValues[2], 255.f), 0.f);
			color.a = getColor().a;
			setColor(color);
			break;
		}
		case COLOR_ALPHA: {
			cpp3ds::Color color = getColor();
			color.a = std::max(std::min(newValues[0], 255.f), 0.f);
			setColor(color);
			break;
		}
		case CONTENT_X: setContentSize(cpp3ds::Vector2f(newValues[0], getContentSize().y)); break;
		case TEXTCOLOR_ALPHA: {
			cpp3ds::Color color = getTextColor();
			color.a = std::max(std::min(newValues[0], 255.f), 0.f);
			setTextColor(color);
			break;
		}
		default:
			TweenTransformable::setValues(tweenType, newValues);
			break;
	}
}

cpp3ds::Text &Button::getText() const
{
	return m_text;
}

} // namespace gui3ds


text:
About

Edenspace builds responsive, mobile-first web applications and websites.

Whether you're a startup looking for MVP builder, a business-owner looking to setup their own website, or a web-experimenter looking for a cofounding company, Edenspace Tech perfect starting point!


text:
package commands

import (
	"github.com/spf13/cobra"

	"github.com/nanobox-io/nanobox/commands/steps"
	"github.com/nanobox-io/nanobox/processors"
	"github.com/nanobox-io/nanobox/util/display"
)

var (
	// UpdateCmd updates the images
	UpdateCmd = &cobra.Command{
		Use:   "update-images",
		Short: "Updates docker images.",
		// Short:  "Updates docker images and checks to see if the nanobox binary needs an update.",
		Long:   ``,
		PreRun: steps.Run("start"),
		Run:    updateFn,
	}
)

// updateFn ...
func updateFn(ccmd *cobra.Command, args []string) {
	display.CommandErr(processors.Update())
}


text:
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/prd_decrease_pressed" />
    <item android:state_enabled="false" android:drawable="@drawable/prd_decrease_disable" />
    <item android:drawable="@drawable/prd_decrease_normal" />
</selector>


text:
/*
 * @author max
 */
package com.intellij.psi.impl.java.stubs.index;

import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiReferenceList;
import com.intellij.psi.impl.search.JavaSourceFilterScope;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.stubs.StringStubIndexExtension;
import com.intellij.psi.stubs.StubIndex;
import com.intellij.psi.stubs.StubIndexKey;
import org.jetbrains.annotations.NotNull;

import java.util.Collection;

public class JavaSuperClassNameOccurenceIndex extends StringStubIndexExtension<PsiReferenceList> {
  private static final int VERSION = 1;

  private static final JavaSuperClassNameOccurenceIndex ourInstance = new JavaSuperClassNameOccurenceIndex();
  public static JavaSuperClassNameOccurenceIndex getInstance() {
    return ourInstance;
  }

  @NotNull
  @Override
  public StubIndexKey<String, PsiReferenceList> getKey() {
    return JavaStubIndexKeys.SUPER_CLASSES;
  }

  @Override
  public Collection<PsiReferenceList> get(final String s, final Project project, @NotNull final GlobalSearchScope scope) {
    return StubIndex.getInstance().safeGet(getKey(), s, project, new JavaSourceFilterScope(scope), PsiReferenceList.class);
  }

  @Override
  public int getVersion() {
    return super.getVersion() + VERSION;
  }
}


text:
![Version tag](https://igor.io/img/git-branching/version.png)

[Enlace](http://semver.org/lang/es/)


text:
#pragma once
#include <aws/config/ConfigService_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSVector.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/config/model/ConfigRule.h>

namespace Aws
{
template<typename RESULT_TYPE>
class AmazonWebServiceResult;

namespace Utils
{
namespace Json
{
  class JsonValue;
} // namespace Json
} // namespace Utils
namespace ConfigService
{
namespace Model
{
  /**
   *

   */
  class AWS_CONFIGSERVICE_API DescribeConfigRulesResult
  {
  public:
    DescribeConfigRulesResult();
    DescribeConfigRulesResult(const AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
    DescribeConfigRulesResult& operator=(const AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);

    /**
     *
The details about your AWS Config rules.

     */
    inline const Aws::Vector<ConfigRule>& GetConfigRules() const{ return m_configRules; }

    /**
     *
The details about your AWS Config rules.

     */
    inline void SetConfigRules(const Aws::Vector<ConfigRule>& value) { m_configRules = value; }

    /**
     *
The details about your AWS Config rules.

     */
    inline void SetConfigRules(Aws::Vector<ConfigRule>&& value) { m_configRules = value; }

    /**
     *
The details about your AWS Config rules.

     */
    inline DescribeConfigRulesResult& WithConfigRules(const Aws::Vector<ConfigRule>& value) { SetConfigRules(value); return *this;}

    /**
     *
The details about your AWS Config rules.

     */
    inline DescribeConfigRulesResult& WithConfigRules(Aws::Vector<ConfigRule>&& value) { SetConfigRules(value); return *this;}

    /**
     *
The details about your AWS Config rules.

     */
    inline DescribeConfigRulesResult& AddConfigRules(const ConfigRule& value) { m_configRules.push_back(value); return *this; }

    /**
     *
The details about your AWS Config rules.

     */
    inline DescribeConfigRulesResult& AddConfigRules(ConfigRule&& value) { m_configRules.push_back(value); return *this; }

    /**
     *
The string that you use in a subsequent request to get the next page of
     * results in a paginated response.

     */
    inline const Aws::String& GetNextToken() const{ return m_nextToken; }

    /**
     *
The string that you use in a subsequent request to get the next page of
     * results in a paginated response.

     */
    inline void SetNextToken(const Aws::String& value) { m_nextToken = value; }

    /**
     *
The string that you use in a subsequent request to get the next page of
     * results in a paginated response.

     */
    inline void SetNextToken(Aws::String&& value) { m_nextToken = value; }

    /**
     *
The string that you use in a subsequent request to get the next page of
     * results in a paginated response.

     */
    inline void SetNextToken(const char* value) { m_nextToken.assign(value); }

    /**
     *
The string that you use in a subsequent request to get the next page of
     * results in a paginated response.

     */
    inline DescribeConfigRulesResult& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}

    /**
     *
The string that you use in a subsequent request to get the next page of
     * results in a paginated response.

     */
    inline DescribeConfigRulesResult& WithNextToken(Aws::String&& value) { SetNextToken(value); return *this;}

    /**
     *
The string that you use in a subsequent request to get the next page of
     * results in a paginated response.

     */
    inline DescribeConfigRulesResult& WithNextToken(const char* value) { SetNextToken(value); return *this;}

  private:
    Aws::Vector<ConfigRule> m_configRules;
    Aws::String m_nextToken;
  };

} // namespace Model
} // namespace ConfigService
} // namespace Aws


text:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingTop="10dip">

    <TextView
        android:id="@+id/GroupText"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:text="A"
        android:textColor="#075c52"
        android:textStyle="bold"
        android:textSize="30sp"/>

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_weight="4">

        <LinearLayout
            android:id="@+id/layoutDivider"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="1dip"
            android:visibility="gone"
            android:background="#ccc"
            android:layout_marginRight="10dip"/>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="99dip"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/FileThumbnail"
                android:layout_width="0dip"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:contentDescription="No image"
                android:src="@drawable/ic_launcher" />

            <LinearLayout
                android:layout_width="0dip"
                android:layout_height="fill_parent"
                android:layout_weight="4"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/FileName"
                    android:layout_width="fill_parent"
                    android:layout_height="0dip"
                    android:layout_weight="2"
                    android:gravity="center_vertical"
                    android:paddingLeft="10dip"
                    android:text="File name"
                    android:textSize="15sp"
                    android:textColor="#075c52"/>

                <TextView
                    android:id="@+id/FileInfor"
                    android:layout_width="fill_parent"
                    android:layout_height="0dip"
                    android:layout_weight="1"
                    android:gravity="center_vertical"
                    android:paddingLeft="10dip"
                    android:text="File information"
                    android:textSize="10sp"
                    android:textColor="#075c52" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>


text:
class ProcessList;
class btThreadSupportInterface;
class PhysicsBody;

class BtWorld : public PhysicsWorld
{
protected:

   BtDebugDraw mDebugDraw;

   F32 mEditorTimeScale;

   btDynamicsWorld *mDynamicsWorld;
   btBroadphaseInterface *mBroadphase;
   btCollisionDispatcher *mDispatcher;
   btConstraintSolver *mSolver;
   btDefaultCollisionConfiguration *mCollisionConfiguration;
  	btThreadSupportInterface *mThreadSupportCollision;
  //.logicking >>
  btSoftBodyWorldInfo mSoftBodyWorldInfo;
  //.logicking <<

   bool mErrorReport;

   bool	mIsEnabled;

   bool mIsSimulating;

   U32 mTickCount;

   ProcessList *mProcessList;

   void _destroy();

public:

   BtWorld();
   virtual ~BtWorld();

   // PhysicWorld
   virtual bool initWorld( bool isServer, ProcessList *processList );
   virtual void destroyWorld();
   virtual bool castRay( const Point3F &startPnt, const Point3F &endPnt, RayInfo *ri, const Point3F &impulse );
   virtual PhysicsBody* castRay( const Point3F &start, const Point3F &end, U32 bodyTypes );
   virtual void explosion( const Point3F &pos, F32 radius, F32 forceMagnitude );
   virtual void onDebugDraw( const SceneRenderState *state );
   virtual void reset();
   virtual bool isEnabled() const { return mIsEnabled; }

   btDynamicsWorld* getDynamicsWorld() const { return mDynamicsWorld; }
   //.logicking >>
   btSoftBodyWorldInfo& getSoftBodyWorldInfo() {return mSoftBodyWorldInfo;};
   //.logicking <<

   void tickPhysics( U32 elapsedMs );
   void getPhysicsResults();
   bool isWritable() const { return !mIsSimulating; }

   void setEnabled( bool enabled );
   bool getEnabled() const { return mIsEnabled; }

   void setEditorTimeScale( F32 timeScale ) { mEditorTimeScale = timeScale; }
   const F32 getEditorTimeScale() const { return mEditorTimeScale; }

};

#endif // _BTWORLD_H_


text:
// Provides control sap.ui.ux3.ExactList.
sap.ui.define(['jquery.sap.global', 'sap/ui/commons/ListBox', 'sap/ui/core/Control', 'sap/ui/core/Popup', 'sap/ui/core/theming/Parameters', './library', 'jquery.sap.dom'],
	function(jQuery, ListBox, Control, Popup, Parameters, library/* , jQuerySap */) {
	"use strict";

	/**
	 * Constructor for a new ExactList.
	 *
	 * @param {string} [sId] id for the new control, generated automatically if no id is given
	 * @param {object} [mSettings] initial settings for the new control
	 *
	 * @class
	 * Internal sub-control of the ExactBrowser. The control is not intended to be used stand alone. For this purpose, the ExactBrowser control can be used.
	 * @extends sap.ui.core.Control
	 *
	 * @author SAP SE
	 * @version 1.50.8
	 *
	 * @constructor
	 * @public
	 * @deprecated Since version 1.38.
	 * @alias sap.ui.ux3.ExactList
	 * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
	 */
	var ExactList = Control.extend("sap.ui.ux3.ExactList", /** @lends sap.ui.ux3.ExactList.prototype */ { metadata : {

		library : "sap.ui.ux3",
		properties : {

			/**
			 * Defines whether the close icon shall be displayed in the header.
			 */
			showClose : {type : "boolean", group : "Misc", defaultValue : false},

			/**
			 * The title of this list is the top of the list hierarchy.
			 */
			topTitle : {type : "string", group : "Misc", defaultValue : null},

			/**
			 * The height in px if this list is the top of the list hierarchy.
			 */
			topHeight : {type : "int", group : "Appearance", defaultValue : 290}
		},
		aggregations : {

			/**
			 * The sub-ExactLists of this list. This aggregation must not be maintained from outside.
			 * The control automatically takes care to fill this aggregation according to the given ExactAttribute.
			 */
			subLists : {type : "sap.ui.ux3.ExactList", multiple : true, singularName : "subList"},

			/**
			 * Hidden aggregation for internal Listbox
			 */
			controls : {type : "sap.ui.commons.ListBox", multiple : true, singularName : "control", visibility : "hidden"}
		},
		associations : {

			/**
			 * The associated ExactAttribute
			 */
			data : {type : "sap.ui.ux3.ExactAttribute", multiple : false}
		},
		events : {

			/**
			 * Event which is fired when an attribute is selected/unselected
			 */
			attributeSelected : {
				parameters : {

					/**
					 * The attribute which was selected/unselected recently
					 */
					attribute : {type : "sap.ui.ux3.ExactAttribute"},

					/**
					 * Array of all ExactAttributes
					 */
					allAttributes : {type : "object"}
				}
			}
		}
	}});

	/**
	 * Constructor for a new ExactList.
	 *
	 * @param {string} [sId] id for the new control, generated automatically if no id is given
	 * @param {object} [mSettings] initial settings for the new control
	 *
	 * @class
	 * Internal sub-control of the ExactBrowser. The control is not intended to be used stand alone. For this purpose, the ExactBrowser control can be used.
	 * @extends sap.ui.core.Control
	 *
	 * @author SAP SE
	 * @version 1.15.1-SNAPSHOT
	 *
	 * @constructor
	 * @private
	 * @name sap.ui.ux3.ExactList
	 */

	(function() {

	//Private extension of the ListBox control
	ListBox.extend("sap.ui.ux3.ExactList.LB", {
		init : function() {
			ListBox.prototype.init.apply(this, arguments);
			this.setAllowMultiSelect(true);
			this.setDisplayIcons(true);
			this.addStyleClass("sapUiUx3ExactLstLb");
		},

		invalidate : function() {
			ListBox.prototype.invalidate.apply(this, arguments);
			if (!this.bInvalidated && this.getParent()) {
				this.getParent().invalidate();
			}
			this.bInvalidated = true;
		},

		_handleUserActivation : function(oEvent) {
			oEvent.metaKey = true;
			ListBox.prototype._handleUserActivation.apply(this, [oEvent]);
		},

		onclick : function(oEvent) {
			ListBox.prototype.onclick.apply(this, arguments);
			this.getParent().onclick(oEvent);
		},

		onAfterRendering : function() {
			ListBox.prototype.onAfterRendering.apply(this, arguments);
			this.bInvalidated = false;
			var oParent = this.getParent();

			var items = this.getItems();
			var bIsTop = oParent._isTop();
			var bHasChildren = false;
			for (var i = 0; i < items.length; i++) {
				var oItem = items[i];
				var oExactAttr = sap.ui.getCore().byId(oItem.getKey());
				var jItem = oItem.$();
				bHasChildren = false;
				if (bIsTop || (!oExactAttr || !oExactAttr.getShowSubAttributesIndicator_Computed())) {
					jItem.addClass("sapUiUx3ExactLstNoIco");
					bHasChildren = bIsTop;
				} else {
					bHasChildren = true;
				}

				if (bHasChildren && !bIsTop) {
					jItem.attr("aria-label", oParent._rb.getText(
							jItem.hasClass("sapUiLbxISel") ? "EXACT_LST_LIST_ITEM_SEL_ARIA_LABEL" : "EXACT_LST_LIST_ITEM_ARIA_LABEL", [oItem.getText()]
					));
				}
			}

			var sPos = oParent._bRTL ? "left" : "right";
			jQuery(".sapUiLbxITxt", this.getDomRef()).css("margin-" + sPos, 20 + jQuery.sap.scrollbarSize().width + "px");
			jQuery(".sapUiLbxIIco", this.getDomRef()).css(sPos, 5 + jQuery.sap.scrollbarSize().width + "px");

			jQuery(this.getDomRef()).attr("tabindex", "-1");

			var sListLabel;
			if (bIsTop) {
				sListLabel = oParent.getTopTitle();
			} else {
				sListLabel = oParent._rb.getText("EXACT_LST_LIST_ARIA_LABEL", [oParent._iLevel, oParent._getAtt().getText()]);
			}
			jQuery(this.getFocusDomRef()).attr("aria-label", sListLabel).attr("aria-expanded", "true");

			this.oItemNavigation.iActiveTabIndex = -1; //Do not set the tabindex to 0 on the focused list item
			this.oItemNavigation.setSelectedIndex( -1); //Reset the selected index always -> focus is set by the item navigation on the last focused item

			//The item navigation should not handle the arrow left and right keys
			this.oItemNavigation.onsapnext = function(oEvent) {
				if (oEvent.keyCode != jQuery.sap.KeyCodes.ARROW_DOWN) {
					return;
				}
				sap.ui.core.delegate.ItemNavigation.prototype.onsapnext.apply(this, arguments);
			};
			this.oItemNavigation.onsapprevious = function(oEvent) {
				if (oEvent.keyCode != jQuery.sap.KeyCodes.ARROW_UP) {
					return;
				}
				sap.ui.core.delegate.ItemNavigation.prototype.onsapprevious.apply(this, arguments);
			};
		},

		renderer: "sap.ui.commons.ListBoxRenderer"
	});

	/**
	 * Does the setup when the control is created.
	 * @private
	 */
	ExactList.prototype.init = function(){
		var that = this;

		this._iLevel = 0;

		this._bCollapsed = false; //Indicates whether the control is horizontally collapsed
		this._bIsFirstRendering = true; //Set to false when the first rendering was done (used to animate the first opening)

		this._rb = sap.ui.getCore().getLibraryResourceBundle("sap.ui.ux3");

		//Create the used ListBox control
		this._lb = new ExactList.LB(this.getId() + "-lb", {
			select: function(oEvent){
				setHeaderText(that);
				var sKey = oEvent.getParameter("selectedItem").getKey();
				var oAttr = sap.ui.getCore().byId(sKey);
				var iSelectedIndex = oEvent.getParameter("selectedIndex");
				if (that._lb.isIndexSelected(iSelectedIndex)) {
					//select
					oAttr.setProperty("selected", true, true);
					var oSubList = createExactListForAttribute(that, oAttr);
					if (oSubList) {
						var idx = getIndexForNewSubList(that, oAttr);
						if (idx < 0) {
							that.addSubList(oSubList);
						} else {
							that.insertSubList(oSubList, idx);
						}
					}
				} else {
					//deselect
					clearAttribute(that, oAttr, iSelectedIndex);
				}

				getTopList(that)._selectionChanged(oAttr);
			}
		});
		this.addAggregation("controls", this._lb);

		this._closeHandle = jQuery.proxy(this.onForceVerticalClose, this);
	};

	/**
	 * Does all the cleanup when the control is to be destroyed.
	 * Called from Element's destroy() method.
	 * @private
	 */
	ExactList.prototype.exit = function() {
		if (this.bIsDestroyed) {
			return;
		}
		clearChangeListener(this);
		this._lb.removeAllItems(); //remove items first before destroy the list (see getOrCreateListItem function: items are reused)
		this._lb = null; //Destroy is called when the aggregation "controls" is cleaned up
		this._closeHandle = null;
		this._scrollCheckHandle = null;
		this._rb = {getText: function(){return "";}};
		this._oTopList = null;
		if (this._dirtyListsCleanupTimer) {
			jQuery.sap.clearDelayedCall(this._dirtyListsCleanupTimer);
			this._dirtyListsCleanupTimer = null;
			this._dirtyLists = null;
		}
	};

	/**
	 * @see sap.ui.core.Element.prototype.getFocusDomRef
	 * @private
	 */
	ExactList.prototype.getFocusDomRef = function() {
		if (this._isTop() && this.$().hasClass("sapUiUx3ExactLstTopHidden")) {
			return this.getDomRef("foc");
		}
		return this._bCollapsed ? this.getDomRef("head") : this._lb.getFocusDomRef();
	};

	/**
	 * Called before the re-rendering is started.
	 * @private
	 */
	ExactList.prototype.onBeforeRendering = function() {
		this._oTopList = null;
		if (!this._bIsFirstRendering) {
			return;
		}

		this._bRTL = sap.ui.getCore().getConfiguration().getRTL();

		//Init the open animation (like expand, no Open Animation when the control is the top list)
		if (!this._isTop()) {
			this._bCollapsed = true;

			//see also function collapseHorizontally
			this._oCollapseStyles = {
				"cntnt": "margin-" + (this._bRTL ? "right" : "left") + ":" + Parameters.get("sapUiUx3ExactLstCollapseWidth") + ";border-top-width:0px;",
				"lst": "width:0px;"
			};
		} else {
			this._bIsFirstRendering = false;
		}
	};

	/**
	 * Called when the rendering is complete.
	 * @private
	 */
	ExactList.prototype.onAfterRendering = function() {
		var that = this;
		var bIsTop = this._isTop();

		if (!this._iCurrentWidth) {
			this._iCurrentWidth = this._getAtt().getWidth();
		}

		if (bIsTop) {
			//Register listener on content overflow for scrollbar
			this._iScrollWidthDiff = -1;
			this.onCheckScrollbar();
			this.$("lst").css("bottom", jQuery.sap.scrollbarSize().height + "px");

			this.$("cntnt").bind("scroll", function(oEvent){
				if (oEvent.target.id === that.getId() + "-cntnt" && oEvent.target.scrollTop != 0) {
					oEvent.target.scrollTop = 0;
				}
			});
		}

		if (!this._bCollapsed) {
			setWidth(this, this._iCurrentWidth);
		}

		//Init the header text
		setHeaderText(this);

		if (this._bIsFirstRendering) {
			//Open Animation
			this._bIsFirstRendering = false;
			collapseHorizontally(this, false, null, true);
		} else {
			//Adapt the scrolling behavior and show the vertical list expander if necessary
			refreshScrollBehaviour(this);

			//Refresh the header text width in case the list is collapsed
			refreshCollapseHeaderTextWidth(this);
		}

		if (this._bRefreshList) {
			this._bRefreshList = false;
			setTimeout(function(){
				that._lb.invalidate();
			}, 0);
		}
	};

	//********* EVENTING *********

	/**
	 * Called when the control gets the focus.
	 * @private
	 */
	ExactList.prototype.onfocusin = function(oEvent) {
		if (oEvent.target === this.getDomRef()) {
			this.getFocusDomRef().focus();
		}
		var $head = this.$("head");
		if (this._isTop()) {
			$head.attr("tabindex", "-1");
			this.$("foc").attr("tabindex", "-1");
			if (!isTopHeaderFocusable(this) && oEvent.target === $head[0]) {
				this.getFocusDomRef().focus();
			}

			if (this.$().hasClass("sapUiUx3ExactLstTopHidden") && oEvent.target === this.getDomRef("foc")) {
				var aLists = this.getSubLists();
				if (aLists.length > 0) {
					aLists[0].getFocusDomRef().focus();
				}
			}
		}
		if (!oEvent.__exactHandled) {
			$head.addClass("sapUiUx3ExactLstHeadFocus");
			oEvent.__exactHandled = true;
		}
	};

	/**
	 * Called when the control loses the focus.
	 * @private
	 */
	ExactList.prototype.onfocusout = function(oEvent) {
		var $head = this.$("head");
		if (this._isTop()) {
			$head.attr("tabindex", "0");
			this.$("foc").attr("tabindex", "0");
		}
		$head.removeClass("sapUiUx3ExactLstHeadFocus");
	};

	/**
	 * Called when the control is clicked.
	 * @private
	 */
	ExactList.prototype.onclick = function(oEvent) {
		var s = this._lb.getScrollTop();
		if (jQuery(oEvent.target).attr("id") == this.getId() + "-exp") {
			//Toggle the vertically Collapse state
			toggleVerticalCollapseState(this);
			this.focus();
			// If the list is expanded, stop the event from bulling up the lists and focus the main
			// list which might be outside the scrolling area.
			oEvent.stopPropagation();
		} else if (jQuery(oEvent.target).attr("id") == this.getId() + "-close") {
			//Close this list
			close(this);
		} else if (jQuery(oEvent.target).attr("id") == this.getId() + "-hide") {
			//Toggle the horizontally Collapse state
			collapseHorizontally(this, !this._bCollapsed, oEvent);
		} else if (this._isTop() && isTopHeaderFocusable(this) && jQuery.sap.containsOrEquals(this.$("head")[0], oEvent.target)) {
			fireHeaderPress(this, oEvent, false);
			return;
		} else if (!jQuery.sap.containsOrEquals(this.$("cntnt")[0], oEvent.target)) {
			this.focus();
		}
		this._lb.setScrollTop(s);
	};

	/**
	 * Called when a key is pressed.
	 * @private
	 */
	ExactList.prototype.onkeydown = function(oEvent) {
		function _handleKeyEvent(oEvent, oTargetDomRef){
			if (jQuery(oTargetDomRef).hasClass("sapUiUx3ExactLstFoc")) {
				return;
			}

			if (oTargetDomRef) {
				oTargetDomRef.focus();
			}
			oEvent.preventDefault();
			oEvent.stopPropagation();
		}

		switch (oEvent.keyCode) {
			case jQuery.sap.KeyCodes.ENTER:
			case jQuery.sap.KeyCodes.SPACE:
				if (this._isTop() && isTopHeaderFocusable(this) && jQuery.sap.containsOrEquals(this.$("head")[0], oEvent.target)) {
					fireHeaderPress(this, oEvent, true);
				}
				break;

			case jQuery.sap.KeyCodes.DELETE:
				//If close functionality is active -> Close the control and deselect the corresponding attribute
				if (!this._isTop() && this.getShowClose()) {
					close(this);
					_handleKeyEvent(oEvent, this.getParent().getFocusDomRef());
				}
				break;

			case jQuery.sap.KeyCodes.NUMPAD_MINUS:
				/* if (!!(oEvent.metaKey || oEvent.ctrlKey)) { //NUMPAD_MINUS + CTRL: Collapse list vertically
					//Deactivated on request of UX
					var jListContRef = this.$("lst");
					if(jListContRef.hasClass("sapUiUx3ExactLstExpanded") && this.$("exp").is(":visible")){
						toggleVerticalCollapseState(this);
					}
					oEvent.preventDefault();
					oEvent.stopPropagation();
				} else */ if (oEvent.shiftKey) { //NUMPAD_MINUS + SHIFT: Make width smaller
					if (!this._bCollapsed) {
						setWidth(this, this._iCurrentWidth - 10);
						_handleKeyEvent(oEvent);
					}
				} else if (!this._bCollapsed) { //NUMPAD_MINUS: Collapse list horizontally
					collapseHorizontally(this, true, oEvent);
				}
				break;

			case jQuery.sap.KeyCodes.NUMPAD_PLUS:
				/* if (!!(oEvent.metaKey || oEvent.ctrlKey)) { //NUMPAD_PLUS + CTRL: Expand list vertically
					//Deactivated on request of UX
					var jListContRef = this.$("lst");
					if(!jListContRef.hasClass("sapUiUx3ExactLstExpanded") && this.$("exp").is(":visible")){
						toggleVerticalCollapseState(this);
					}
					oEvent.preventDefault();
					oEvent.stopPropagation();
				} else */
				if (oEvent.shiftKey) { //NUMPAD_PLUS + SHIFT: Make width larger
					if (!this._bCollapsed) {
						setWidth(this, this._iCurrentWidth + 10);
						_handleKeyEvent(oEvent);
					}
				} else if (this._bCollapsed) { //NUMPAD_PLUS: Expand list horizontally
					collapseHorizontally(this, false, oEvent);
				}
				break;

			case jQuery.sap.KeyCodes.TAB:
				//Handle Tabbing
				if (this._iLevel == 0) {
					var bHeaderFocusable = isTopHeaderFocusable(this);
					if (!oEvent.shiftKey && bHeaderFocusable && jQuery.sap.containsOrEquals(this.$("head")[0], oEvent.target)) {
						_handleKeyEvent(oEvent, this.getFocusDomRef());
					} else if (jQuery.sap.containsOrEquals(this.getFocusDomRef(), oEvent.target)) {
						if (oEvent.shiftKey && bHeaderFocusable) {
							_handleKeyEvent(oEvent, this.$("head")[0]);
						} else if (!oEvent.shiftKey) {
							var oSubList = getSuccessorList(this);
							if (oSubList) {
								_handleKeyEvent(oEvent, oSubList.getFocusDomRef());
							}
						}
					}
					return;
				}

				if (this._iLevel == 1) {
					var oSubList = null;
					if (oEvent.shiftKey) {
						if (jQuery.sap.containsOrEquals(this.$("cntnt")[0], oEvent.target)) {
							oSubList = this;
						} else {
							oSubList = getPredecessorList(this);
						}
					} else {
						oSubList = getSuccessorList(this);
					}
					if (oSubList) {
						_handleKeyEvent(oEvent, oSubList.getFocusDomRef());
					}
					oEvent.stopPropagation();
				}
				break;

			case jQuery.sap.KeyCodes.ARROW_LEFT:
			case jQuery.sap.KeyCodes.ARROW_RIGHT:
				var oSubList = null;
				if (this._iLevel >= 1) {
					if ((this._bRTL && oEvent.keyCode === jQuery.sap.KeyCodes.ARROW_LEFT)
							|| (!this._bRTL && oEvent.keyCode === jQuery.sap.KeyCodes.ARROW_RIGHT)) {
						oSubList = getSuccessorList(this, true);
					} else {
						oSubList = getPredecessorList(this, true);
					}
					if (oSubList) {
						_handleKeyEvent(oEvent, oSubList.getFocusDomRef());
					}
					oEvent.stopPropagation();
				}
				break;
		}
	};

	/**
	 * Called when mousedown event appears. -> Starting point for the resizing
	 * @private
	 */
	ExactList.prototype.onmousedown = function(oEvent) {
		if (oEvent.target.id === this.getId() + "-rsz") {
			jQuery(document.body).append(
					"

");

			// Fix for IE text selection while dragging
			jQuery(document.body).bind("selectstart." + this.getId(), onStartSelect);

			var jHandle = !!sap.ui.Device.browser.internet_explorer ? jQuery(document.body) : this.$("ghost");
			jHandle.bind("mouseup." + this.getId(), jQuery.proxy(onRelease, this)).bind("mousemove." + this.getId(), jQuery.proxy(onMove, this));

			this._iStartDragX = oEvent.pageX;
			this._iStartWidth  = this.$("lst").width();

			this.$("rsz").addClass("sapUiUx3ExactLstRSzDrag");
		}
	};

	/**
	 * Called when the vertically Collapse State should be closed immediately (e.g. outer event)
	 * @private
	 */
	ExactList.prototype.onForceVerticalClose = function(oEvent) {
		if (oEvent.type == "mousedown" ||
				oEvent.type == "click" ||
				oEvent.type == "dblclick" ||
				oEvent.type == "focusin" ||
				oEvent.type == "focusout" ||
				oEvent.type == "keydown" ||
				oEvent.type == "keypress" ||
				oEvent.type == "keyup" ||
				oEvent.type == "mousedown" ||
				oEvent.type == "mouseup") {
			var jRef = this.$("lst");
			if (!jQuery.sap.containsOrEquals(jRef[0], oEvent.target) || oEvent.target.tagName == "BODY") {
				if (jRef.hasClass("sapUiUx3ExactLstExpanded")) {
					this._oPopup.close(true);
				}
			}
		}
	};

	/**
	 * Called periodicly to check whether the content scrollbar must be show or hidden
	 * @private
	 */
	ExactList.prototype.onCheckScrollbar = function(oEvent) {
		this._scrollCheckTimer = null;

		var jContentArea = this.$("cntnt");
		var oContentArea = jContentArea[0];
		if (oContentArea) {
			var iNewDiff = oContentArea.scrollWidth - oContentArea.clientWidth;
			if (this._iScrollWidthDiff != iNewDiff) {
				this._iScrollWidthDiff = iNewDiff;
				if (iNewDiff <= 0) {
					//hidden scrollbar
					jContentArea.css({"overflow-x": "hidden", "bottom": jQuery.sap.scrollbarSize().height + "px"});
				} else {
					//visible scrollbar
					jContentArea.css({"overflow-x": "scroll", "bottom": "0px"});
				}
			}
			this._scrollCheckTimer = jQuery.sap.delayedCall(300, this, this.onCheckScrollbar);
		}
	};

	//********* OVERRIDDEN API FUNCTIONS *********

	ExactList.prototype.insertSubList = function(oSubList, iIndex) {
		this.insertAggregation("subLists", oSubList, iIndex);
		if (oSubList) {
			setLevel(oSubList, this._iLevel + 1);
		}
		return this;
	};

	ExactList.prototype.addSubList = function(oSubList) {
		this.addAggregation("subLists", oSubList);
		if (oSubList) {
			setLevel(oSubList, this._iLevel + 1);
		}
		return this;
	};

	ExactList.prototype.setData = function(vData) {
		if (vData != null && typeof (vData) != "string") {
			vData = vData.getId();
		}

		if (vData) {
			//Set the associated ExactAttribute
			this.setAssociation("data", vData);
			vData = this._getAtt();
			this._lb.removeAllItems();
			if (!vData) {
				return this;
			}
			var aAtts = vData.getAttributesInternal(true);
			var aSelectedKeys = [];
			var aLists = [];
			//Update the used ListBox accordingly and create child exact lists
			for (var i = 0; i < aAtts.length; i++) {
				var oItem = getOrCreateListItem(aAtts[i]);
				this._lb.addItem(oItem);
				if (aAtts[i].getSelected()) {
					var oList = createExactListForAttribute(this, aAtts[i]);
					if (oList) {
						aLists.push(oList);
					}
					aSelectedKeys.push(oItem.getKey());
				}
			}
			this._lb.setSelectedKeys(aSelectedKeys);

			//Update child lists
			var aOldChildren = this.getSubLists();
			for (var i = 0; i < aOldChildren.length; i++) {
				var idx = jQuery.inArray(aOldChildren[i], aLists);
				if (idx >= 0) {
					if (vData.getListOrder() != sap.ui.ux3.ExactOrder.Fixed /*Select*/) {
						//List is already a sublist -> remove it from the array of lists to add
						aLists.splice(idx, 1);
					}
				} else {
					//List does not exist anymore in the array of lists to add -> destroy it (also removes it from the aggregation)
					aOldChildren[i]._lb.removeAllItems();  //remove items first before destroy the list (see function getOrCreateListItem: items are reused)
					aOldChildren[i].destroy();
				}
			}

			if (vData.getListOrder() === sap.ui.ux3.ExactOrder.Fixed) {
				this.removeAllSubLists();
			}

			//Append all newly created lists
			for (var i = 0; i < aLists.length; i++) {
				this.addSubList(aLists[i]);
			}

			//Set the change listener to the exact attribute
			var that = this;
			vData.setChangeListener({id: that.getId(), _notifyOnChange: function(sType, oAttribute){
				if (sType === "width") {
					if (that._getAtt() === oAttribute && that.getDomRef()) {
						setWidth(that, oAttribute.getWidth());
					}
					return;
				}

				var oTopList = getTopList(that);
				if (!oTopList._dirtyLists) {
					oTopList._dirtyLists = {};
				}
				if (!oTopList._dirtyLists[that.getId()]) {
					oTopList._dirtyLists[that.getId()] = that;
				}

				if (!oTopList._dirtyListsCleanupTimer) {
					oTopList._dirtyListsCleanupTimer = jQuery.sap.delayedCall(0, oTopList, function(){
						this._dirtyListsCleanupTimer = null;
						jQuery.each(this._dirtyLists, function(i, oList){
							if (oList._lb && oList.getParent()) { //List was not destroyed in the meantime and is still active
								if (!oList._isTop()) {
									oList.getParent().setData(oList.getParent().getData());
								} else {
									oList.setData(oList.getData());
								}
							}
						});
						this._dirtyLists = null;
					}, []);
				}
			}});
		}

		return this;
	};

	ExactList.prototype.setShowClose = function(bShowClose) {
		if (this._isTop()) {
			this.setProperty("showClose", bShowClose);
		}
		return this;
	};

	ExactList.prototype.getShowClose = function() {
		return getTopList(this).getProperty("showClose");
	};

	ExactList.prototype.getTopTitle = function() {
		var sTitle = this.getProperty("topTitle");
		return sTitle ? sTitle : this._rb.getText("EXACT_BRWSR_LST_TITLE");
	};

	//********* GLOBAL HELPERS *********

	/**
	 * Returns the associated ExactAttribute.
	 * @private
	 */
	ExactList.prototype._getAtt = function() {
		return sap.ui.getCore().byId(this.getData());
	};

	/**
	 * Returns true, when this control is the top most in the hierarchy, false otherwise.
	 * @private
	 */
	ExactList.prototype._isTop = function() {
		return !(this.getParent() instanceof ExactList);
	};

	/**
	 * Handles selections of the whole list tree and fires selection change event.
	 * @private
	 */
	ExactList.prototype._selectionChanged = function(oAttribute) {
		if (!this._isTop()) {
			return;
		}

		// In case of TwoWay databinding the attribute might have already changed by now. Make sure
		// We use the correct one.
		// This happened for example when the selected property was bound in the same model as
		// the data for the lists
		oAttribute = sap.ui.getCore().byId(oAttribute.getId());

		//Computes recursivly all selected attributes and adds them to the given result list
		var _computeSelectedAttributes = function(oAtt, aResult){
			if (!oAtt.getSelected()) {
				return;
			}
			aResult.push(oAtt);
			var aValues = oAtt.getAttributesInternal();
			for (var idx = 0; idx < aValues.length; idx++) {
				_computeSelectedAttributes(aValues[idx], aResult);
			}
		};

		var aSelectedAttributes = [];
		var aTopValues = this._getAtt().getAttributesInternal();
		for (var idx = 0; idx < aTopValues.length; idx++) {
			_computeSelectedAttributes(aTopValues[idx], aSelectedAttributes);
		}

		this.fireAttributeSelected({attribute: oAttribute, allAttributes: aSelectedAttributes});
	};

	/**
	 * Closes all open sub lists and clears the selection if this list is the top list.
	 *
	 * @private
	 */
	ExactList.prototype._closeAll = function() {
		if (!this._isTop()) {
			return;
		}

		var that = this;

		var fCallback = function(){
			that._getAtt()._clearSelection();
			that._lb.clearSelection();
			that.fireAttributeSelected({attribute: undefined, allAttributes: []});
		};

		var aLists = this.getSubLists();

		if (aLists.length > 0) {
			for (var i = 0; i < aLists.length; i++) {
				close(aLists[i], true, i == aLists.length - 1 ? fCallback : null);
			}
		} else {
			fCallback();
		}
	};

	//********* LOCAL HELPERS *********

	//Returns the predecessor of the given list based on the level and whether TAB or the arrow keys are used
	var getPredecessorList = function(oList, bArrow){
		function getPrevOnSameLevel(oLst){
			var oParentRef = oLst.getParent();
			var aParentSubLists = oParentRef.getSubLists();
			var idx = oParentRef.indexOfSubList(oLst) - 1;
			if (idx >= 0) {
				return aParentSubLists[idx];
			}
			return null;
		}

		function getListOrLastChild(oLst){
			var aSubLists = oLst.getSubLists();
			if (aSubLists.length > 0) {
				return getListOrLastChild(aSubLists[aSubLists.length - 1]);
			}
			return oLst;
		}

		if (oList._iLevel == 0) {
			return null;
		} else if (oList._iLevel == 1) {
			if (bArrow) {
				return null;
			}
			var oPrevList = getPrevOnSameLevel(oList);
			if (oPrevList) {
				return oPrevList;
			}
			return oList.getParent();
		} else if (oList._iLevel > 1) {
			var oPrevList = getPrevOnSameLevel(oList);
			if (oPrevList) {
				return getListOrLastChild(oPrevList);
			}
			var oParent = oList.getParent();
			if (oParent._iLevel >= 1) {
				return oParent;
			}
		}
		return null;
	};

	//Returns the successor of the given list based on the level and whether TAB or the arrow keys are used
	var getSuccessorList = function(oList, bArrow){
		function getNextOnSameLevel(oLst){
			var oParent = oLst.getParent();
			var aParentSubLists = oParent.getSubLists();
			var idx = oParent.indexOfSubList(oLst) + 1;
			if (idx < aParentSubLists.length) {
				return aParentSubLists[idx];
			}
			return null;
		}

		function getFirstChild(oLst){
			var aSubLists = oLst.getSubLists();
			if (aSubLists.length > 0) {
				return aSubLists[0];
			}
			return null;
		}

		function getNext(oLst){
			var oNextListRef = getNextOnSameLevel(oLst);
			if (oNextListRef) {
				return oNextListRef;
			}
			var oParent = oLst.getParent();
			if (oParent._iLevel > (bArrow ? 1 : 0)) {
				return getNext(oParent);
			} else {
				return null;
			}
		}

		if (oList._iLevel == 0) {
			return getFirstChild(oList);
		} else if (oList._iLevel == 1) {
			return bArrow ? getFirstChild(oList) : getNextOnSameLevel(oList);
		} else if (oList._iLevel > 1) {
			var oNextList = getFirstChild(oList);
			if (oNextList) {
				return oNextList;
			}

			return getNext(oList);
		}
		return null;
	};

	var fireHeaderPress = function(oList, oEvent, bKeyboard){
		oList.fireEvent("_headerPress", {
			kexboard: bKeyboard,
			domRef: oList.$("head")
		});
		oEvent.stopPropagation();
	};

	var isTopHeaderFocusable = function(oList){
		return !isTopHidden(oList) && oList.$().hasClass("sapUiUx3ExactLstTopActive");
	};

	var isTopHidden = function(oList){
		return oList.$().hasClass("sapUiUx3ExactLstTopHidden");
	};

	//Returns the index in the sublists of the given list for a new list of the given attribute
	var getIndexForNewSubList = function(oList, oAttr){
		if (oList._getAtt().getListOrder() != sap.ui.ux3.ExactOrder.Fixed /*Select*/) {
			return -1;
		}

		var aAttributes = oList._getAtt().getAttributes();
		var idx = 0;
		for (var i = 0; i < aAttributes.length; i++) {
			if (aAttributes[i] === oAttr) {
				break;
			}
			if (aAttributes[i].getChangeListener()) {
				idx++;
			}
		}
		return idx;
	};

	var refreshScrollBehaviour = function(oList){
		if (adaptScollBehavior(oList)) {
			oList.$("lst").addClass("sapUiUx3ExactLstLstExp");

			if (!oList._oPopup) {
				var fPopupEventHandle = function(oEvent){
					oList._handleEvent(oEvent);
				};

				oList._oPopup = new Popup();

				if (!sap.ui.Device.browser.firefox) {
					oList._oPopup._fixPositioning = function(oPosition, bRtl) {
						Popup.prototype._fixPositioning.apply(this, arguments);
						if (bRtl) {
							var $Ref = this._$();
							var $Of = jQuery(oPosition.of);
							var iOffset = 0;
							if (oPosition.offset) {
								iOffset = parseInt(oPosition.offset.split(" ")[0], 10);
							}
							$Ref.css("right", (jQuery(window).width() - $Of.outerWidth() - $Of.offset().left + iOffset) + "px");
						}
					};
				}

				oList._oPopup.open = function(){
					var jListContRef = oList.$("lst");
					animate(jListContRef, false, -1, function(jRef){
						//Switch the expand icon
						jListContRef.addClass("sapUiUx3ExactLstExpanded");
						oList.$("exp").html(sap.ui.ux3.ExactListRenderer.getExpanderSymbol(true, false));
						//Remember the current height for closing later and set the height explicitly
						oList.__sOldHeight = jListContRef.css("height");
						jListContRef.css("height", oList.__sOldHeight);
						var jListHeader = oList.$("head");
						//Calculate the target height
						var jListRef = jQuery(oList._lb.getDomRef());
						var iListHeight = jListRef[0].scrollHeight + oList.$("exp").height() + jListRef.outerHeight() - jListRef.height() + 1;
						var iMaxListHeight = jQuery(window).height() - parseInt(jListRef.offset().top, 10) + jQuery(window).scrollTop() - jListHeader.outerHeight();
						var iTargetHeight = Math.min(iListHeight, iMaxListHeight);
						//Set the list as popup content and open the popup
						oList._oPopup.setContent(jListContRef[0]);
						var sOffset = Parameters.get()["sapUiUx3ExactLst" + (oList._isTop() ? "Root" : "") + "ExpandOffset"] || "0 0";
						Popup.prototype.open.apply(oList._oPopup,
								[0, Popup.Dock.BeginTop, Popup.Dock.BeginBottom, jListHeader[0], sOffset, "none none"]);
						oList._bPopupOpened = true;
						return iTargetHeight;
					}, function(jRef){
						//Update BlindLayer of popup
						jListContRef.addClass("sapUiUx3ExactLstExpandedBL");
						//Adapt the scroll behavior and set the focus
						adaptScollBehavior(oList);
						oList.getFocusDomRef().focus();
						//Bind the event handlers for closing and control events
						jQuery.sap.bindAnyEvent(oList._closeHandle);
						jRef.bind(jQuery.sap.ControlEvents.join(" "), fPopupEventHandle);
					});
				};
				oList._oPopup.close = function(bSkipFocus){
					var jListContRef = oList.$("lst");
					jListContRef.removeClass("sapUiUx3ExactLstExpandedBL");
					animate(jListContRef, false, oList.__sOldHeight, function(jRef){
						//Unbind the event handlers for closing and control events
						jQuery.sap.unbindAnyEvent(oList._closeHandle);
						jRef.unbind(jQuery.sap.ControlEvents.join(" "), fPopupEventHandle);
						//Switch the expand icon
						jListContRef.removeClass("sapUiUx3ExactLstExpanded");
						oList.$("exp").html(sap.ui.ux3.ExactListRenderer.getExpanderSymbol(false, false));
					}, function(jRef){
						//Move the list to its original position
						jRef.detach();
						jListContRef.removeClass("sapUiShd");
						jRef.attr("style", "width:" + oList._iCurrentWidth + "px;");
						jQuery(oList.getDomRef()).prepend(jRef);
						//Cleanup and close the popup
						oList._oPopup.setContent(null);
						oList._bPopupOpened = undefined;
						oList.__sOldHeight = null;
						if (oList._isTop()) {
							jRef.css("bottom", jQuery.sap.scrollbarSize().height + "px");
						}
						adaptScollBehavior(oList);
						Popup.prototype.close.apply(oList._oPopup, [0]);
						if (!bSkipFocus) {
							oList.getFocusDomRef().focus();
						}
					});
				};
			}
		}
	};

	//Animates the width or height of the given jRef to the given target value
	//Optional callbacks are possible which are called before and after the animation
	var animate = function(jRef, bWidth, iValue, fDoBefore, fDoAfter){
		if (fDoBefore) {
			var iVal = fDoBefore(jRef);
			if (iVal != undefined) {
				iValue = iVal;
			}
		}
		var _fDoAfter = fDoAfter ? function(){fDoAfter(jRef);} : function(){};
		if (jQuery.fx.off) {
			if (bWidth) {
				jRef.width(iValue);
			} else {
				jRef.height(iValue);
			}
			_fDoAfter();
		} else {
			var oParam = bWidth ? {width: iValue} : {height: iValue};
			jRef.stop(true, true).animate(oParam, 200, 'linear', _fDoAfter);
		}
	};

	// Handles the StartSelect event during resizing
	// @see sap.ui.ux3.ExactList.prototype.onmousedown
	var onStartSelect = function(oEvent){
		oEvent.preventDefault();
		oEvent.stopPropagation();
		return false;
	};

	//Handles the MouseMove event during resizing
	//@see sap.ui.ux3.ExactList.prototype.onmousedown
	var onMove = function(oEvent){
		var iCurrentX = oEvent.pageX;
		var iDiff = this._bRTL ? (this._iStartDragX - iCurrentX) : (iCurrentX - this._iStartDragX);
		setWidth(this, this._iStartWidth + iDiff);
	};

	//Handles the MouseUp event during resizing
	//@see sap.ui.ux3.ExactList.prototype.onmousedown
	var onRelease = function(oEvent){
		jQuery(document.body).unbind("selectstart." + this.getId()).unbind("mouseup." + this.getId()).unbind("mousemove." + this.getId());
		this.$("ghost").remove();
		this.$("rsz").removeClass("sapUiUx3ExactLstRSzDrag");
		this._iStartWidth = undefined;
		this._iStartDragX = undefined;
		this.focus();
	};

	//Sets the width of the list to the given width (maybe the width is adapted to the allowed range (@see checkWidth))
	var setWidth = function(oList, iWidth){
		iWidth = sap.ui.ux3.ExactAttribute._checkWidth(iWidth);
		var sPos = oList._bRTL ? "right" : "left";
		oList._iCurrentWidth = iWidth;
		oList._getAtt()._setWidth(oList._iCurrentWidth);
		oList.$("lst").css("width", iWidth + "px");
		oList.$("rsz").css(sPos, (iWidth - 4) + "px");
		if (oList._isTop()) {
			if (!isTopHidden(oList)) {
				oList.$("head").css("width", iWidth + "px");
				oList.$("cntnt").css(sPos, (iWidth + 8) + "px");
				oList.$("scroll").css(sPos, (iWidth + 8) + "px");
			}
		} else {
			if (!oList.$().hasClass("sapUiUx3ExactLstCollapsed")) {
				oList.$("cntnt").css("margin-" + sPos, iWidth + "px");
			}
		}
	};

	//Refresh the header text of the list
	var setHeaderText = function(oList){
		var oAtt = oList._getAtt();
		if (oAtt && !oList._isTop()) {
			oList.$("head-txt").html(jQuery.sap.encodeHTML(oAtt.getText())
					+ " (" + oList._lb.getSelectedIndices().length + "/" + oList._lb.getItems().length + ")");
		}
	};

	//Sets the level of the list and its sublists
	var setLevel = function(oList, iLevel){
		oList._iLevel = iLevel;
		var aLists = oList.getSubLists();
		for (var i = 0; i < aLists.length; i++) {
			setLevel(aLists[i], iLevel + 1);
		}
	};

	//Adapt the scrolling behavior when not all list items can be shown and return whether adaptation was done or not.
	var adaptScollBehavior = function(oList){
		if (oList._lb) {
			var jListRef = jQuery(oList._lb.getDomRef());
			oList.$("lst").removeClass("sapUiUx3ExactLstScroll");
			if (jListRef.length > 0 && jListRef.outerHeight() < jListRef[0].scrollHeight) {
				oList.$("lst").addClass("sapUiUx3ExactLstScroll");
				return true;
			}
		}
		return false;
	};

	//Collapses or expands the given list horizontally
	var collapseHorizontally = function(oList, bCollapse, oEvent, bSkipParentTraversal){
		if (oEvent) {
			oEvent.preventDefault();
			oEvent.stopPropagation();
		}
		if (oList._isTop()) {
			return;
		}
		if (oList._bCollapsed != bCollapse) {
			//Toggles the horizontal Collapse State
			var bFocus = !!oEvent;
			var cntntAnimParam = {};
			cntntAnimParam["margin-" + (oList._bRTL ? "right" : "left")] = (oList._bCollapsed ?
					(oList._iCurrentWidth + "px") : Parameters.get("sapUiUx3ExactLstCollapseWidth"));
			cntntAnimParam["border-top-width"] = (oList._bCollapsed ?
					Parameters.get("sapUiUx3ExactLstContentTop") : "0px");

			var $Ctnt = oList.$("cntnt");
			if (jQuery.fx.off) {
				for (var css in cntntAnimParam) {
					$Ctnt.css(css, cntntAnimParam[css]);
				}
			} else {
				$Ctnt.stop(true, true).animate(cntntAnimParam, 200, 'linear');
			}

			if (oList._bCollapsed) {
				//expand
				animate(oList.$("lst"), true, oList._iCurrentWidth + "px", function() {
					jQuery(oList.getDomRef()).removeClass("sapUiUx3ExactLstCollapsed");
					oList.$("head").css("overflow", "hidden");
				}, function($Ref) {
					oList.$("hide")
						.html(sap.ui.ux3.ExactListRenderer.getExpanderSymbol(true, true))
						.attr("title", oList._rb.getText("EXACT_LST_LIST_COLLAPSE"));
					if (bFocus) {
						oList.focus();
					}
					var $head = oList.$("head");
					oList.$("head-txt").removeAttr("style");
					$head.removeAttr("style");
					$Ref.removeAttr("style");
					refreshScrollBehaviour(oList);
					setWidth(oList, oList._iCurrentWidth);
					refreshCollapseHeaderTextWidth(oList);

					$head.removeAttr("role");
					$head.removeAttr("aria-label");
					$head.removeAttr("aria-expanded");

					var oAtt = oList._getAtt();
					if (oAtt && oAtt._scrollToAttributeId) {
						oAtt.scrollTo(sap.ui.getCore().byId(oAtt._scrollToAttributeId));
					}

				});

				oList._oCollapseStyles = undefined;
			} else {
				oList._oCollapseStyles = {};

				//collapse
				animate(oList.$("lst"), true, 0, null, function() {
					jQuery(oList.getDomRef()).addClass("sapUiUx3ExactLstCollapsed");
					oList.$("hide")
						.html(sap.ui.ux3.ExactListRenderer.getExpanderSymbol(false, true))
						.attr("title", oList._rb.getText("EXACT_LST_LIST_EXPAND"));
					if (bFocus) {
						oList.focus();
					}
					refreshCollapseHeaderTextWidth(oList);

					var $head = oList.$("head");
					$head.attr("role", "region");
					$head.attr("aria-label", oList._rb.getText("EXACT_LST_LIST_COLL_ARIA_LABEL", [oList._iLevel, oList._getAtt().getText()]));
					$head.attr("aria-expanded", "false");
				});

				//Remember the current styles for rerendering
				var aStyles = [];
				for (var css in cntntAnimParam) {
					aStyles.push(css, ":", cntntAnimParam[css], ";");
				}
				oList._oCollapseStyles["cntnt"] = aStyles.join("");
				oList._oCollapseStyles["lst"] = "width:0px;";
			}

			oList._bCollapsed = !oList._bCollapsed;
		}

		if (bSkipParentTraversal) {
			return;
		}
		var oParent = oList.getParent();
		if (!oList._isTop() && oParent && oParent._isTop && !oParent._isTop()) {
			collapseHorizontally(oParent, bCollapse);
		}
	};

	//Refreshs the header text width of all collapsed lists
	var refreshCollapseHeaderTextWidth = function(oList) {
		if (oList._bCollapsed) {
			var iWidth = oList.$("cntnt").height() - 50/*Space for Header Action Buttons - Maybe provide theme parameter in future*/;
			var $txt = oList.$("head-txt");
			$txt.css("width", iWidth + "px");
		}
		var aSubLists = oList.getSubLists();
		for (var i = 0; i < aSubLists.length; i++) {
			refreshCollapseHeaderTextWidth(aSubLists[i]);
		}
	};

	//Toggles the vertical Collapse State
	var toggleVerticalCollapseState = function(oList){
		var jListContRef = oList.$("lst");
		if (jListContRef.hasClass("sapUiUx3ExactLstExpanded")) {
			//collapse
			oList._oPopup.close();
		} else {
			//expand
			oList._oPopup.open();
		}
	};

	//Handles the close of the list
	var close = function(oList, bSkipNotify, fCallback){
		var fFinalize = function(jRef) {
			if (!bSkipNotify) {
				var oAttr = oList._getAtt();
				var iSelectedIndex = oAttr.getParent().indexOfAttribute(oAttr);
				clearAttribute(oList.getParent(), oAttr, iSelectedIndex, true);
				setHeaderText(oList.getParent());
				getTopList(oList)._selectionChanged(oAttr);
			}
			oList.destroy();
			if (fCallback) {
				fCallback();
			}
		};

		var oListRef = oList.getDomRef();
		if (oListRef) {
			animate(jQuery(oListRef), true, 0, function(jRef) {
				jRef.css("overflow", "hidden");
			}, fFinalize);
		} else {
			fFinalize();
		}
	};

	//Creates a new ExactList for the given attribute if the attribute is selected and does not have a corresponding list yet.
	//If the attribute has a corresponding list already this list is returned.
	var createExactListForAttribute = function(oList, oAttribute) {
		if (oAttribute.getSelected()) {
			var aAttributes = oAttribute.getAttributesInternal(true);
			if (aAttributes.length > 0) {
				var oSubList;
				if (oAttribute.getChangeListener()) {
					oSubList = sap.ui.getCore().byId(oAttribute.getChangeListener().id);
				} else {
					oSubList = new ExactList();
				}

				oSubList.setData(oAttribute);
				return oSubList;
			}
		}

		return null;
	};

	//Sets the selection property of the given attribute and all its sub-attributes to false.
	//Additionally the given index in the lists ListBox is unselected. ExactLists which corresponds
	//to the cleared attributes are closed if bSkipNotify is not set.
	var clearAttribute = function(oList, oAttribute, iSelectedIndex, bSkipNotify){
		oList._lb.removeSelectedIndex(iSelectedIndex);
		oAttribute._clearSelection();
		if (!bSkipNotify) {
			var aSubLists = oList.getSubLists();
			for (var i = 0; i < aSubLists.length; i++) {
				if (aSubLists[i].getData() === oAttribute.getId()) {
					close(aSubLists[i], true);
				}
			}
		}
	};

	//Removes the change listener which is attached to the lists attribute.
	var clearChangeListener = function(oList) {
		var oAttr = oList._getAtt();
		if (oAttr && oAttr.getChangeListener() && oAttr.getChangeListener().id === oList.getId()) {
			oAttr.setChangeListener(null);
		}
	};

	//Returns the top most list.
	var getTopList = function(oList) {
		if (oList._isTop()) {
			return oList;
		}
		if (!oList._oTopList) {
			oList._oTopList = getTopList(oList.getParent());
		}
		return oList._oTopList;
	};

	var getOrCreateListItem = function(oAttribute){
		var oItem;
		if (oAttribute.__oItem) {
			oItem = oAttribute.__oItem;
			if (oItem.getText() != oAttribute.getText()) {
				oItem.setText(oAttribute.getText());
			}
			if (oItem.getKey() != oAttribute.getId()) {
				oItem.setKey(oAttribute.getId());
			}
		} else {
			oItem = new sap.ui.core.ListItem({text:oAttribute.getText(), key: oAttribute.getId()});
			oAttribute.exit = function() {
				if (sap.ui.ux3.ExactAttribute.prototype.exit) {
					sap.ui.ux3.ExactAttribute.prototype.exit.apply(oAttribute, []);
				}
				this.__oItem.destroy();
				this.__oItem = null;
			};
			oAttribute.__oItem = oItem;
		}
		return oItem;
	};

	}());

	//Override docu of the "internal" aggregation subLists.

	/**
	 * Getter for aggregation subLists.

	 * The sub ExactLists of this list. This aggregation must not be maintained from outside. The control automatically takes care to fill this aggregation according to the given ExactAttribute.
	 *
	 * @return {sap.ui.ux3.ExactList[]}
	 * @protected
	 */

	/**
	 * Inserts a subList into the aggregation named subLists.
	 *
	 * @param {sap.ui.ux3.ExactList}
	 *          oSubList the subList to insert; if empty, nothing is inserted
	 * @param {int}
	 *             iIndex the 0-based index the subList should be inserted at; for
	 *             a negative value of iIndex, the subList is inserted at position 0; for a value
	 *             greater than the current size of the aggregation, the subList is inserted at
	 *             the last position
	 * @return {sap.ui.ux3.ExactList} this to allow method chaining
	 * @protected
	 */

	/**
	 * Adds some subList oSubList
	 * to the aggregation named subLists.
	 *
	 * @param {sap.ui.ux3.ExactList}
	 *            oSubList the subList to add; if empty, nothing is inserted
	 * @return {sap.ui.ux3.ExactList} this to allow method chaining
	 * @protected
	 */

	/**
	 * Removes a subList from the aggregation named subLists.
	 *
	 * @param {int | string | sap.ui.ux3.ExactList} vSubList the subList to remove or its index or id
	 * @return {sap.ui.ux3.ExactList} the removed subList or null
	 * @protected
	 */

	/**
	 * Removes all the controls in the aggregation named subLists.

	 * Additionally unregisters them from the hosting UIArea.
	 * @return {sap.ui.ux3.ExactList[]} an array of the removed elements (might be empty)
	 * @protected
	 */

	/**
	 * Checks for the provided sap.ui.ux3.ExactList in the aggregation named subLists
	 * and returns its index if found or -1 otherwise.
	 *
	 * @param {sap.ui.ux3.ExactList}
	 *            oSubList the subList whose index is looked for.
	 * @return {int} the index of the provided control in the aggregation if found, or -1 otherwise
	 * @protected
	 */

	/**
	 * Destroys all the subLists in the aggregation
	 * named subLists.
	 * @return {sap.ui.ux3.ExactList} this to allow method chaining
	 * @protected
	 */

	return ExactList;

}, /* bExport= */ true);


text:
package org.apache.hadoop.yarn.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.util.Shell.ShellCommandExecutor;
import org.apache.hadoop.util.StringUtils;

/**
 * A Proc file-system based ProcessTree. Works only on Linux.
 */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ProcfsBasedProcessTree extends ResourceCalculatorProcessTree {

  static final Log LOG = LogFactory
      .getLog(ProcfsBasedProcessTree.class);

  private static final String PROCFS = "/proc/";

  private static final Pattern PROCFS_STAT_FILE_FORMAT = Pattern .compile(
    "^([0-9-]+)\\s([^\\s]+)\\s[^\\s]\\s([0-9-]+)\\s([0-9-]+)\\s([0-9-]+)\\s" +
    "([0-9-]+\\s){7}([0-9]+)\\s([0-9]+)\\s([0-9-]+\\s){7}([0-9]+)\\s([0-9]+)" +
    "(\\s[0-9-]+){15}");

  public static final String PROCFS_STAT_FILE = "stat";
  public static final String PROCFS_CMDLINE_FILE = "cmdline";
  public static final long PAGE_SIZE;
  static {
    ShellCommandExecutor shellExecutor =
            new ShellCommandExecutor(new String[]{"getconf",  "PAGESIZE"});
    long pageSize = -1;
    try {
      shellExecutor.execute();
      pageSize = Long.parseLong(shellExecutor.getOutput().replace("\n", ""));
    } catch (IOException e) {
      LOG.error(StringUtils.stringifyException(e));
    } finally {
      PAGE_SIZE = pageSize;
    }
  }
  public static final long JIFFY_LENGTH_IN_MILLIS; // in millisecond
  static {
    ShellCommandExecutor shellExecutor =
            new ShellCommandExecutor(new String[]{"getconf",  "CLK_TCK"});
    long jiffiesPerSecond = -1;
    try {
      shellExecutor.execute();
      jiffiesPerSecond = Long.parseLong(shellExecutor.getOutput().replace("\n", ""));
    } catch (IOException e) {
      LOG.error(StringUtils.stringifyException(e));
    } finally {
      JIFFY_LENGTH_IN_MILLIS = jiffiesPerSecond != -1 ?
                     Math.round(1000D / jiffiesPerSecond) : -1;
    }
  }

  // to enable testing, using this variable which can be configured
  // to a test directory.
  private String procfsDir;

  static private String deadPid = "-1";
  private String pid = deadPid;
  static private Pattern numberPattern = Pattern.compile("[1-9][0-9]*");
  private Long cpuTime = 0L;

  protected Map<String, ProcessInfo> processTree =
    new HashMap<String, ProcessInfo>();

  public ProcfsBasedProcessTree(String pid) {
    this(pid, PROCFS);
  }

  /**
   * Build a new process tree rooted at the pid.
   *
   * This method is provided mainly for testing purposes, where
   * the root of the proc file system can be adjusted.
   *
   * @param pid root of the process tree
   * @param procfsDir the root of a proc file system - only used for testing.
   */
  public ProcfsBasedProcessTree(String pid, String procfsDir) {
    super(pid);
    this.pid = getValidPID(pid);
    this.procfsDir = procfsDir;
  }

  /**
   * Checks if the ProcfsBasedProcessTree is available on this system.
   *
   * @return true if ProcfsBasedProcessTree is available. False otherwise.
   */
  public static boolean isAvailable() {
    try {
      String osName = System.getProperty("os.name");
      if (!osName.startsWith("Linux")) {
        LOG.info("ProcfsBasedProcessTree currently is supported only on "
            + "Linux.");
        return false;
      }
    } catch (SecurityException se) {
      LOG.warn("Failed to get Operating System name. " + se);
      return false;
    }
    return true;
  }

  /**
   * Update process-tree with latest state. If the root-process is not alive,
   * tree will be empty.
   *
   */
  @Override
  public void updateProcessTree() {
    if (!pid.equals(deadPid)) {
      // Get the list of processes
      List<String> processList = getProcessList();

      Map<String, ProcessInfo> allProcessInfo = new HashMap<String, ProcessInfo>();

      // cache the processTree to get the age for processes
      Map<String, ProcessInfo> oldProcs =
              new HashMap<String, ProcessInfo>(processTree);
      processTree.clear();

      ProcessInfo me = null;
      for (String proc : processList) {
        // Get information for each process
        ProcessInfo pInfo = new ProcessInfo(proc);
        if (constructProcessInfo(pInfo, procfsDir) != null) {
          allProcessInfo.put(proc, pInfo);
          if (proc.equals(this.pid)) {
            me = pInfo; // cache 'me'
            processTree.put(proc, pInfo);
          }
        }
      }

      if (me == null) {
        return;
      }

      // Add each process to its parent.
      for (Map.Entry<String, ProcessInfo> entry : allProcessInfo.entrySet()) {
        String pID = entry.getKey();
        if (!pID.equals("1")) {
          ProcessInfo pInfo = entry.getValue();
          ProcessInfo parentPInfo = allProcessInfo.get(pInfo.getPpid());
          if (parentPInfo != null) {
            parentPInfo.addChild(pInfo);
          }
        }
      }

      // now start constructing the process-tree
      LinkedList<ProcessInfo> pInfoQueue = new LinkedList<ProcessInfo>();
      pInfoQueue.addAll(me.getChildren());
      while (!pInfoQueue.isEmpty()) {
        ProcessInfo pInfo = pInfoQueue.remove();
        if (!processTree.containsKey(pInfo.getPid())) {
          processTree.put(pInfo.getPid(), pInfo);
        }
        pInfoQueue.addAll(pInfo.getChildren());
      }

      // update age values and compute the number of jiffies since last update
      for (Map.Entry<String, ProcessInfo> procs : processTree.entrySet()) {
        ProcessInfo oldInfo = oldProcs.get(procs.getKey());
        if (procs.getValue() != null) {
          procs.getValue().updateJiffy(oldInfo);
          if (oldInfo != null) {
            procs.getValue().updateAge(oldInfo);
          }
        }
      }

      if (LOG.isDebugEnabled()) {
        // Log.debug the ProcfsBasedProcessTree
        LOG.debug(this.toString());
      }
    }
  }

  /** Verify that the given process id is same as its process group id.
   * @return true if the process id matches else return false.
   */
  @Override
  public boolean checkPidPgrpidForMatch() {
    return checkPidPgrpidForMatch(pid, PROCFS);
  }

  public static boolean checkPidPgrpidForMatch(String _pid, String procfs) {
    // Get information for this process
    ProcessInfo pInfo = new ProcessInfo(_pid);
    pInfo = constructProcessInfo(pInfo, procfs);
    // null if process group leader finished execution; issue no warning
    // make sure that pid and its pgrpId match
    if (pInfo == null) return true;
    String pgrpId = pInfo.getPgrpId().toString();
    return pgrpId.equals(_pid);
  }

  private static final String PROCESSTREE_DUMP_FORMAT =
      "\t|- %s %s %d %d %s %d %d %d %d %s\n";

  public List<String> getCurrentProcessIDs() {
    List<String> currentPIDs = new ArrayList<String>();
    currentPIDs.addAll(processTree.keySet());
    return currentPIDs;
  }

  /**
   * Get a dump of the process-tree.
   *
   * @return a string concatenating the dump of information of all the processes
   *         in the process-tree
   */
  @Override
  public String getProcessTreeDump() {
    StringBuilder ret = new StringBuilder();
    // The header.
    ret.append(String.format("\t|- PID PPID PGRPID SESSID CMD_NAME "
        + "USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) "
        + "RSSMEM_USAGE(PAGES) FULL_CMD_LINE\n"));
    for (ProcessInfo p : processTree.values()) {
      if (p != null) {
        ret.append(String.format(PROCESSTREE_DUMP_FORMAT, p.getPid(), p
            .getPpid(), p.getPgrpId(), p.getSessionId(), p.getName(), p
            .getUtime(), p.getStime(), p.getVmem(), p.getRssmemPage(), p
            .getCmdLine(procfsDir)));
      }
    }
    return ret.toString();
  }

  /**
   * Get the cumulative virtual memory used by all the processes in the
   * process-tree that are older than the passed in age.
   *
   * @param olderThanAge processes above this age are included in the
   *                      memory addition
   * @return cumulative virtual memory used by the process-tree in bytes,
   *          for processes older than this age.
   */
  @Override
  public long getCumulativeVmem(int olderThanAge) {
    long total = 0;
    for (ProcessInfo p : processTree.values()) {
      if ((p != null) && (p.getAge() > olderThanAge)) {
        total += p.getVmem();
      }
    }
    return total;
  }

  /**
   * Get the cumulative resident set size (rss) memory used by all the processes
   * in the process-tree that are older than the passed in age.
   *
   * @param olderThanAge processes above this age are included in the
   *                      memory addition
   * @return cumulative rss memory used by the process-tree in bytes,
   *          for processes older than this age. return 0 if it cannot be
   *          calculated
   */
  @Override
  public long getCumulativeRssmem(int olderThanAge) {
    if (PAGE_SIZE < 0) {
      return 0;
    }
    long totalPages = 0;
    for (ProcessInfo p : processTree.values()) {
      if ((p != null) && (p.getAge() > olderThanAge)) {
        totalPages += p.getRssmemPage();
      }
    }
    return totalPages * PAGE_SIZE; // convert # pages to byte
  }

  /**
   * Get the CPU time in millisecond used by all the processes in the
   * process-tree since the process-tree created
   *
   * @return cumulative CPU time in millisecond since the process-tree created
   *         return 0 if it cannot be calculated
   */
  @Override
  public long getCumulativeCpuTime() {
    if (JIFFY_LENGTH_IN_MILLIS < 0) {
      return 0;
    }
    long incJiffies = 0;
    for (ProcessInfo p : processTree.values()) {
      if (p != null) {
        incJiffies += p.getDtime();
      }
    }
    cpuTime += incJiffies * JIFFY_LENGTH_IN_MILLIS;
    return cpuTime;
  }

  private static String getValidPID(String pid) {
    if (pid == null) return deadPid;
    Matcher m = numberPattern.matcher(pid);
    if (m.matches()) return pid;
    return deadPid;
  }

  /**
   * Get the list of all processes in the system.
   */
  private List<String> getProcessList() {
    String[] processDirs = (new File(procfsDir)).list();
    List<String> processList = new ArrayList<String>();

    for (String dir : processDirs) {
      Matcher m = numberPattern.matcher(dir);
      if (!m.matches()) continue;
      try {
        if ((new File(procfsDir, dir)).isDirectory()) {
          processList.add(dir);
        }
      } catch (SecurityException s) {
        // skip this process
      }
    }
    return processList;
  }

  /**
   * Construct the ProcessInfo using the process' PID and procfs rooted at the
   * specified directory and return the same. It is provided mainly to assist
   * testing purposes.
   *
   * Returns null on failing to read from procfs,
   *
   * @param pinfo ProcessInfo that needs to be updated
   * @param procfsDir root of the proc file system
   * @return updated ProcessInfo, null on errors.
   */
  private static ProcessInfo constructProcessInfo(ProcessInfo pinfo,
                                                    String procfsDir) {
    ProcessInfo ret = null;
    // Read "procfsDir/<pid>/stat" file - typically /proc/<pid>/stat
    BufferedReader in = null;
    FileReader fReader = null;
    try {
      File pidDir = new File(procfsDir, pinfo.getPid());
      fReader = new FileReader(new File(pidDir, PROCFS_STAT_FILE));
      in = new BufferedReader(fReader);
    } catch (FileNotFoundException f) {
      // The process vanished in the interim!
      return ret;
    }

    ret = pinfo;
    try {
      String str = in.readLine(); // only one line
      Matcher m = PROCFS_STAT_FILE_FORMAT.matcher(str);
      boolean mat = m.find();
      if (mat) {
        // Set (name) (ppid) (pgrpId) (session) (utime) (stime) (vsize) (rss)
        pinfo.updateProcessInfo(m.group(2), m.group(3),
                Integer.parseInt(m.group(4)), Integer.parseInt(m.group(5)),
                Long.parseLong(m.group(7)), new BigInteger(m.group(8)),
                Long.parseLong(m.group(10)), Long.parseLong(m.group(11)));
      } else {
        LOG.warn("Unexpected: procfs stat file is not in the expected format"
            + " for process with pid " + pinfo.getPid());
        ret = null;
      }
    } catch (IOException io) {
      LOG.warn("Error reading the stream " + io);
      ret = null;
    } finally {
      // Close the streams
      try {
        fReader.close();
        try {
          in.close();
        } catch (IOException i) {
          LOG.warn("Error closing the stream " + in);
        }
      } catch (IOException i) {
        LOG.warn("Error closing the stream " + fReader);
      }
    }

    return ret;
  }
  /**
   * Returns a string printing PIDs of process present in the
   * ProcfsBasedProcessTree. Output format : [pid pid ..]
   */
  @Override
  public String toString() {
    StringBuffer pTree = new StringBuffer("[ ");
    for (String p : processTree.keySet()) {
      pTree.append(p);
      pTree.append(" ");
    }
    return pTree.substring(0, pTree.length()) + "]";
  }

  /**
   *
   * Class containing information of a process.
   *
   */
  private static class ProcessInfo {
    private String pid; // process-id
    private String name; // command name
    private Integer pgrpId; // process group-id
    private String ppid; // parent process-id
    private Integer sessionId; // session-id
    private Long vmem; // virtual memory usage
    private Long rssmemPage; // rss memory usage in # of pages
    private Long utime = 0L; // # of jiffies in user mode
    private final BigInteger MAX_LONG = BigInteger.valueOf(Long.MAX_VALUE);
    private BigInteger stime = new BigInteger("0"); // # of jiffies in kernel mode
    // how many times has this process been seen alive
    private int age;

    // # of jiffies used since last update:
    private Long dtime = 0L;
    // dtime = (utime + stime) - (utimeOld + stimeOld)
    // We need this to compute the cumulative CPU time
    // because the subprocess may finish earlier than root process

    private List<ProcessInfo> children = new ArrayList<ProcessInfo>(); // list of children

    public ProcessInfo(String pid) {
      this.pid = pid;
      // seeing this the first time.
      this.age = 1;
    }

    public String getPid() {
      return pid;
    }

    public String getName() {
      return name;
    }

    public Integer getPgrpId() {
      return pgrpId;
    }

    public String getPpid() {
      return ppid;
    }

    public Integer getSessionId() {
      return sessionId;
    }

    public Long getVmem() {
      return vmem;
    }

    public Long getUtime() {
      return utime;
    }

    public BigInteger getStime() {
      return stime;
    }

    public Long getDtime() {
      return dtime;
    }

    public Long getRssmemPage() { // get rss # of pages
      return rssmemPage;
    }

    public int getAge() {
      return age;
    }

    public void updateProcessInfo(String name, String ppid, Integer pgrpId,
        Integer sessionId, Long utime, BigInteger stime, Long vmem, Long rssmem) {
      this.name = name;
      this.ppid = ppid;
      this.pgrpId = pgrpId;
      this.sessionId = sessionId;
      this.utime = utime;
      this.stime = stime;
      this.vmem = vmem;
      this.rssmemPage = rssmem;
    }

    public void updateJiffy(ProcessInfo oldInfo) {
      if (oldInfo == null) {
        BigInteger sum = this.stime.add(BigInteger.valueOf(this.utime));
        if (sum.compareTo(MAX_LONG) > 0) {
          this.dtime = 0L;
          LOG.warn("Sum of stime (" + this.stime + ") and utime (" + this.utime
              + ") is greater than " + Long.MAX_VALUE);
        } else {
          this.dtime = sum.longValue();
        }
        return;
      }
      this.dtime = (this.utime - oldInfo.utime +
          this.stime.subtract(oldInfo.stime).longValue());
    }

    public void updateAge(ProcessInfo oldInfo) {
      this.age = oldInfo.age + 1;
    }

    public boolean addChild(ProcessInfo p) {
      return children.add(p);
    }

    public List<ProcessInfo> getChildren() {
      return children;
    }

    public String getCmdLine(String procfsDir) {
      String ret = "N/A";
      if (pid == null) {
        return ret;
      }
      BufferedReader in = null;
      FileReader fReader = null;
      try {
        fReader =
            new FileReader(new File(new File(procfsDir, pid.toString()),
                PROCFS_CMDLINE_FILE));
      } catch (FileNotFoundException f) {
        // The process vanished in the interim!
        return ret;
      }

      in = new BufferedReader(fReader);

      try {
        ret = in.readLine(); // only one line
        if (ret == null) {
          ret = "N/A";
        } else {
          ret = ret.replace('\0', ' '); // Replace each null char with a space
          if (ret.equals("")) {
            // The cmdline might be empty because the process is swapped out or
            // is a zombie.
            ret = "N/A";
          }
        }
      } catch (IOException io) {
        LOG.warn("Error reading the stream " + io);
        ret = "N/A";
      } finally {
        // Close the streams
        try {
          fReader.close();
          try {
            in.close();
          } catch (IOException i) {
            LOG.warn("Error closing the stream " + in);
          }
        } catch (IOException i) {
          LOG.warn("Error closing the stream " + fReader);
        }
      }

      return ret;
    }
  }
}


text:
using System;
using BoletoNet;

public partial class Bancos_BancodoBrasil : System.Web.UI.Page
{
    void Page_PreInit(object sender, EventArgs e)
    {
        if (IsPostBack)
            MasterPageFile = "~/MasterPrint.master";
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        DateTime vencimento = DateTime.Now.AddDays(5);

        #region Exemplo Carteira 16, com nosso número de 11 posições
        /*
         * Nesse exemplo utilizamos a carteira 16 e o nosso número no máximo de 11 posições.
         * Não é necessário informar o numero do convênio e nem o tipo da modalidade.
         * O nosso número tem que ter no máximo 11 posições.
         */

        Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "1234", "1", "123456", "1");
        Boleto b = new Boleto(vencimento, 0.01m, "16", "09876543210", c);

        #endregion Exemplo Carteira 16, com nosso número de 11 posições

        #region Exemplo Carteira 16, convênio de 6 posições e tipo modalidade 21
        /*
         * Nesse exemplo utilizamos a carteira 16 e o número do convênio de 6 posições.
         * É obrigatório informar o tipo da modalidade 21.
         * O nosso número tem que ter no máximo 10 posições.
         */

        //Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "1234", "1", "123456", "1");
        //c.Convenio = 123456;

        //Boleto b = new Boleto(vencimento, 0.01, "16", "09876543210", c);
        //b.TipoModalidade = "21";
        #endregion Exemplo Carteira 16, convênio de 6 posições e tipo modalidade 21

        #region Exemplo Carteira 18, com nosso número de 11 posições
        /*
         * Nesse exemplo utilizamos a carteira 18 e o nosso número no máximo de 11 posições.
         * Não é necessário informar o numero do convênio e nem o tipo da modalidade.
         * O nosso número tem que ter no máximo 11 posições.
         */

        //Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "1234", "1", "123456", "1");
        //Boleto b = new Boleto(vencimento, 0.01, "18", "09876543210", c);

        #endregion Exemplo Carteira 18, com nosso número de 11 posições

        #region Exemplo Carteira 18, convênio de 6 posições e tipo modalidade 21
        /*
         * Nesse exemplo utilizamos a carteira 18 e o número do convênio de 6 posições.
         * É obrigatório informar o tipo da modalidade 21.
         * O nosso número tem que ter no máximo 10 posições.
         */

        //Cedente c = new Cedente("00.000.000/0000-00", "Empresa de Atacado", "1234", "1", "123456", "1");
        //c.Convenio = 123456;
        //Boleto b = new Boleto(vencimento, 0.01, "18", "09876543210", c);
        //b.TipoModalidade = "21";
        #endregion Exemplo Carteira 18, convênio de 6 posições e tipo modalidade 21

        b.NumeroDocumento = "12415487";

        b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente ");
        b.Sacado.Endereco.End = "Endereço do seu Cliente ";
        b.Sacado.Endereco.Bairro = "Bairro";
        b.Sacado.Endereco.Cidade = "Cidade";
        b.Sacado.Endereco.CEP = "00000000";
        b.Sacado.Endereco.UF = "UF";

        //Adiciona as instruções ao boleto
        #region Instruções
        //Protestar
        Instrucao_BancoBrasil item = new Instrucao_BancoBrasil(9, 5);
        b.Instrucoes.Add(item);
        //ImportanciaporDiaDesconto
        item = new Instrucao_BancoBrasil(30, 0);
        b.Instrucoes.Add(item);
        //ProtestarAposNDiasCorridos
        item = new Instrucao_BancoBrasil(81, 15);
        b.Instrucoes.Add(item);
        #endregion Instruções

        boletoBancario.Boleto = b;
        boletoBancario.Boleto.Valida();

        boletoBancario.AjustaTamanhoFonte(12, tamanhoFonteInstrucaoImpressao:14);

        boletoBancario.MostrarComprovanteEntrega = (Request.Url.Query == "?show");
        boletoBancario.OcultarInstrucoes = true;
        boletoBancario.FormatoPropaganda = (Request.Url.Query == "?formatopropaganda");
        boletoBancario.ImagemPropaganda = GetBase64StringForImage(Server.MapPath("/prop.jpg"));

        var bytes = boletoBancario.MontaBytesPDF();
        Response.Clear();
        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", "attachment;filename=\"FileName.pdf\"");
        Response.BinaryWrite(bytes);
        Response.Flush();
        Response.End();
    }

    protected static string GetBase64StringForImage(string imgPath)
    {
        byte[] imageBytes = System.IO.File.ReadAllBytes(imgPath);
        string base64String = Convert.ToBase64String(imageBytes);
        return base64String;
    }
}


text:
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Kew Bull. 17: 277 (1963)

#### Original name
Polyporus albertinii Lloyd, 1912

### Remarks
null