text:
/**
 * calendar - jQuery EasyUI
 *
 */
(function($){

	function setSize(target, param){
		var opts = $.data(target, 'calendar').options;
		var t = $(target);
		if (param){
			$.extend(opts, {
				width: param.width,
				height: param.height
			});
		}
		t._size(opts, t.parent());
		t.find('.calendar-body')._outerHeight(t.height() - t.find('.calendar-header')._outerHeight());
		if (t.find('.calendar-menu').is(':visible')){
			showSelectMenus(target);
		}
	}

	function init(target){
		$(target).addClass('calendar').html(
				'
' +
					'

' +
					'

' +
					'

' +
					'

' +
					'
' +
						'' +
					'
' +
				'
' +
				'
' +
					'
' +
						'
' +
							'' +
							'<input class="calendar-menu-year" type="text"></input>' +
							'' +
						'
' +
						'
' +
						'
' +
					'
' +
				'
'
		);

		$(target).bind('_resize', function(e,force){
			if ($(this).hasClass('easyui-fluid') || force){
				setSize(target);
			}
			return false;
		});
	}

	function bindEvents(target){
		var opts = $.data(target, 'calendar').options;
		var menu = $(target).find('.calendar-menu');
		menu.find('.calendar-menu-year').unbind('.calendar').bind('keypress.calendar', function(e){
			if (e.keyCode == 13){
				setDate(true);
			}
		});
		$(target).unbind('.calendar').bind('mouseover.calendar', function(e){
			var t = toTarget(e.target);
			if (t.hasClass('calendar-nav') || t.hasClass('calendar-text') || (t.hasClass('calendar-day') && !t.hasClass('calendar-disabled'))){
				t.addClass('calendar-nav-hover');
			}
		}).bind('mouseout.calendar', function(e){
			var t = toTarget(e.target);
			if (t.hasClass('calendar-nav') || t.hasClass('calendar-text') || (t.hasClass('calendar-day') && !t.hasClass('calendar-disabled'))){
				t.removeClass('calendar-nav-hover');
			}
		}).bind('click.calendar', function(e){
			var t = toTarget(e.target);
			if (t.hasClass('calendar-menu-next') || t.hasClass('calendar-nextyear')){
				showYear(1);
			} else if (t.hasClass('calendar-menu-prev') || t.hasClass('calendar-prevyear')){
				showYear(-1);
			} else if (t.hasClass('calendar-menu-month')){
				menu.find('.calendar-selected').removeClass('calendar-selected');
				t.addClass('calendar-selected');
				setDate(true);
			} else if (t.hasClass('calendar-prevmonth')){
				showMonth(-1);
			} else if (t.hasClass('calendar-nextmonth')){
				showMonth(1);
			} else if (t.hasClass('calendar-text')){
				if (menu.is(':visible')){
					menu.hide();
				} else {
					showSelectMenus(target);
				}
			} else if (t.hasClass('calendar-day')){
				if (t.hasClass('calendar-disabled')){return}
				var oldValue = opts.current;
				t.closest('div.calendar-body').find('.calendar-selected').removeClass('calendar-selected');
				t.addClass('calendar-selected');
				var parts = t.attr('abbr').split(',');
				var y = parseInt(parts[0]);
				var m = parseInt(parts[1]);
				var d = parseInt(parts[2]);
				opts.current = new Date(y, m-1, d);
				opts.onSelect.call(target, opts.current);
				if (!oldValue || oldValue.getTime() != opts.current.getTime()){
					opts.onChange.call(target, opts.current, oldValue);
				}
				if (opts.year != y || opts.month != m){
					opts.year = y;
					opts.month = m;
					show(target);
				}
			}
		});
		function toTarget(t){
			var day = $(t).closest('.calendar-day');
			if (day.length){
				return day;
			} else {
				return $(t);
			}
		}
		function setDate(hideMenu){
			var menu = $(target).find('.calendar-menu');
			var year = menu.find('.calendar-menu-year').val();
			var month = menu.find('.calendar-selected').attr('abbr');
			if (!isNaN(year)){
				opts.year = parseInt(year);
				opts.month = parseInt(month);
				show(target);
			}
			if (hideMenu){menu.hide()}
		}
		function showYear(delta){
			opts.year += delta;
			show(target);
			menu.find('.calendar-menu-year').val(opts.year);
		}
		function showMonth(delta){
			opts.month += delta;
			if (opts.month > 12){
				opts.year++;
				opts.month = 1;
			} else if (opts.month < 1){
				opts.year--;
				opts.month = 12;
			}
			show(target);

			menu.find('td.calendar-selected').removeClass('calendar-selected');
			menu.find('td:eq(' + (opts.month-1) + ')').addClass('calendar-selected');
		}
	}

	/**
	 * show the select menu that can change year or month, if the menu is not be created then create it.
	 */
	function showSelectMenus(target){
		var opts = $.data(target, 'calendar').options;
		$(target).find('.calendar-menu').show();

		if ($(target).find('.calendar-menu-month-inner').is(':empty')){
			$(target).find('.calendar-menu-month-inner').empty();
			var t = $('

').appendTo($(target).find('.calendar-menu-month-inner'));
			var idx = 0;
			for(var i=0; i<3; i++){
				var tr = $('

').appendTo(t);
				for(var j=0; j<4; j++){
					$('	').html(opts.months[idx++]).attr('abbr',idx).appendTo(tr);
				}
			}
		}

		var body = $(target).find('.calendar-body');
		var sele = $(target).find('.calendar-menu');
		var seleYear = sele.find('.calendar-menu-year-inner');
		var seleMonth = sele.find('.calendar-menu-month-inner');

		seleYear.find('input').val(opts.year).focus();
		seleMonth.find('td.calendar-selected').removeClass('calendar-selected');
		seleMonth.find('td:eq('+(opts.month-1)+')').addClass('calendar-selected');

		sele._outerWidth(body._outerWidth());
		sele._outerHeight(body._outerHeight());
		seleMonth._outerHeight(sele.height() - seleYear._outerHeight());
	}

	/**
	 * get weeks data.
	 */
	function getWeeks(target, year, month){
		var opts = $.data(target, 'calendar').options;
		var dates = [];
		var lastDay = new Date(year, month, 0).getDate();
		for(var i=1; i<=lastDay; i++) dates.push([year,month,i]);

		// group date by week
		var weeks = [], week = [];
		var memoDay = -1;
		while(dates.length > 0){
			var date = dates.shift();
			week.push(date);
			var day = new Date(date[0],date[1]-1,date[2]).getDay();
			if (memoDay == day){
				day = 0;
			} else if (day == (opts.firstDay==0 ? 7 : opts.firstDay) - 1){
				weeks.push(week);
				week = [];
			}
			memoDay = day;
		}
		if (week.length){
			weeks.push(week);
		}

		var firstWeek = weeks[0];
		if (firstWeek.length < 7){
			while(firstWeek.length < 7){
				var firstDate = firstWeek[0];
				var date = new Date(firstDate[0],firstDate[1]-1,firstDate[2]-1)
				firstWeek.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]);
			}
		} else {
			var firstDate = firstWeek[0];
			var week = [];
			for(var i=1; i<=7; i++){
				var date = new Date(firstDate[0], firstDate[1]-1, firstDate[2]-i);
				week.unshift([date.getFullYear(), date.getMonth()+1, date.getDate()]);
			}
			weeks.unshift(week);
		}

		var lastWeek = weeks[weeks.length-1];
		while(lastWeek.length < 7){
			var lastDate = lastWeek[lastWeek.length-1];
			var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+1);
			lastWeek.push([date.getFullYear(), date.getMonth()+1, date.getDate()]);
		}
		if (weeks.length < 6){
			var lastDate = lastWeek[lastWeek.length-1];
			var week = [];
			for(var i=1; i<=7; i++){
				var date = new Date(lastDate[0], lastDate[1]-1, lastDate[2]+i);
				week.push([date.getFullYear(), date.getMonth()+1, date.getDate()]);
			}
			weeks.push(week);
		}

		return weeks;
	}

	/**
	 * show the calendar day.
	 */
	function show(target){
		var opts = $.data(target, 'calendar').options;
		if (opts.current && !opts.validator.call(target, opts.current)){
			opts.current = null;
		}

		var now = new Date();
		var todayInfo = now.getFullYear()+','+(now.getMonth()+1)+','+now.getDate();
		var currentInfo = opts.current ? (opts.current.getFullYear()+','+(opts.current.getMonth()+1)+','+opts.current.getDate()) : '';
		// calulate the saturday and sunday index
		var saIndex = 6 - opts.firstDay;
		var suIndex = saIndex + 1;
		if (saIndex >= 7) saIndex -= 7;
		if (suIndex >= 7) suIndex -= 7;

		$(target).find('.calendar-title span').html(opts.months[opts.month-1] + ' ' + opts.year);

		var body = $(target).find('div.calendar-body');
		body.children('table').remove();

		var data = ['
'];
		data.push('

');
		for(var i=opts.firstDay; i<opts.weeks.length; i++){
			data.push(''+opts.weeks[i]+'	');
		}
		for(var i=0; i<opts.firstDay; i++){
			data.push(''+opts.weeks[i]+'	');
		}
		data.push('

');

		data.push('
');
		var weeks = getWeeks(target, opts.year, opts.month);
		for(var i=0; i<weeks.length; i++){
			var week = weeks[i];
			var cls = '';
			if (i == 0){cls = 'calendar-first';}
			else if (i == weeks.length - 1){cls = 'calendar-last';}
			data.push('
');
			for(var j=0; j<week.length; j++){
				var day = week[j];
				var s = day[0]+','+day[1]+','+day[2];
				var dvalue = new Date(day[0], parseInt(day[1])-1, day[2]);
				var d = opts.formatter.call(target, dvalue);
				var css = opts.styler.call(target, dvalue);
				var classValue = '';
				var styleValue = '';
				if (typeof css == 'string'){
					styleValue = css;
				} else if (css){
					classValue = css['class'] || '';
					styleValue = css['style'] || '';
				}

				var cls = 'calendar-day';
				if (!(opts.year == day[0] && opts.month == day[1])){
					cls += ' calendar-other-month';
				}
				if (s == todayInfo){cls += ' calendar-today';}
				if (s == currentInfo){cls += ' calendar-selected';}
				if (j == saIndex){cls += ' calendar-saturday';}
				else if (j == suIndex){cls += ' calendar-sunday';}
				if (j == 0){cls += ' calendar-first';}
				else if (j == week.length-1){cls += ' calendar-last';}

				cls += ' ' + classValue;
				if (!opts.validator.call(target, dvalue)){
					cls += ' calendar-disabled';
				}

				data.push('' + d + '	');
			}
			data.push('
');
		}
		data.push('
');
		data.push('
');

		body.append(data.join(''));
		body.children('table.calendar-dtable').prependTo(body);

		opts.onNavigate.call(target, opts.year, opts.month);
	}

	$.fn.calendar = function(options, param){
		if (typeof options == 'string'){
			return $.fn.calendar.methods[options](this, param);
		}

		options = options || {};
		return this.each(function(){
			var state = $.data(this, 'calendar');
			if (state){
				$.extend(state.options, options);
			} else {
				state = $.data(this, 'calendar', {
					options:$.extend({}, $.fn.calendar.defaults, $.fn.calendar.parseOptions(this), options)
				});
				init(this);
			}
			if (state.options.border == false){
				$(this).addClass('calendar-noborder');
			}
			setSize(this);
			bindEvents(this);
			show(this);
			$(this).find('div.calendar-menu').hide();	// hide the calendar menu
		});
	};

	$.fn.calendar.methods = {
		options: function(jq){
			return $.data(jq[0], 'calendar').options;
		},
		resize: function(jq, param){
			return jq.each(function(){
				setSize(this, param);
			});
		},
		moveTo: function(jq, date){
			return jq.each(function(){
				if (!date){
					var now = new Date();
					$(this).calendar({
						year: now.getFullYear(),
						month: now.getMonth()+1,
						current: date
					});
					return;
				}
				var opts = $(this).calendar('options');
				if (opts.validator.call(this, date)){
					var oldValue = opts.current;
					$(this).calendar({
						year: date.getFullYear(),
						month: date.getMonth()+1,
						current: date
					});
					if (!oldValue || oldValue.getTime() != date.getTime()){
						opts.onChange.call(this, opts.current, oldValue);
					}
				}
			});
		}
	};

	$.fn.calendar.parseOptions = function(target){
		var t = $(target);
		return $.extend({}, $.parser.parseOptions(target, [
			{firstDay:'number',fit:'boolean',border:'boolean'}
		]));
	};

	$.fn.calendar.defaults = {
		width:180,
		height:180,
		fit:false,
		border:true,
		firstDay:0,
		weeks:['S','M','T','W','T','F','S'],
		months:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
		year:new Date().getFullYear(),
		month:new Date().getMonth()+1,
		current:(function(){
			var d = new Date();
			return new Date(d.getFullYear(), d.getMonth(), d.getDate());
		})(),

		formatter:function(date){return date.getDate()},
		styler:function(date){return ''},
		validator:function(date){return true},

		onSelect: function(date){},
		onChange: function(newDate, oldDate){},
		onNavigate: function(year, month){}
	};
})(jQuery);


text:
package jwave.exceptions;

/**
 * This exception should be thrown if some memory is not allocated.
 *
 * @author Christian Scheiblich (cscheiblich@gmail.com)
 * @date 18.05.2015 20:11:28
 */
public class JWaveFailureNotAllocated extends JWaveFailure {

  /**
   * @author Christian Scheiblich (cscheiblich@gmail.com)
   * @date 18.05.2015 20:12:36
   */
  private static final long serialVersionUID = 2187309268927118324L;

  /**
   * @author Christian Scheiblich (cscheiblich@gmail.com)
   * @date 18.05.2015 20:11:28
   * @param message
   */
  public JWaveFailureNotAllocated( String message ) {
    super( message );
  } // JWaveFailureNotAllocated

} // class

redpajama_set_name: RedPajamaGithub


text:
> A [SASS](http://sass-lang.com/) mixin to generate timeline / breadcrumbs CSS.

#pre-requisites

Install RubyGems [SASS](http://sass-lang.com/) and [Compass](http://compass-style.org/)

```
gem install sass
gem install compass
```

Install [NodeJS and NPM](http://nodejs.org/)

#getting started

###install

- with bower: `bower install timeline-css`
- git clone: `git clone git@github.com:sayanee/timeline-css.git`

###html

Integrate the HTML code into your view files. The number of list items within the `<li>` tags is 4 by default. If you want to have more/less number of list-items, generate it with SCSS/SASS files.

apple

banana

pear

orange

You can use either of the **3 syntaxes**: CSS, SCSS or SASS

###generate css & scss by varying properties

1. install relevant packages

	```
	npm install
	```
1. change the mixin arguments and the class name in file `sass/timeline`
1. run `grunt` to compile SASS to SCSS and CSS

###1. with css

1. include the file `css/timeline.css` in your HTML file

###2. with SCSS

1. include the files `scss/timeline-mixin.scss` as a mixin
1. with reference to file `scss/timeline.scss` import compass and the timeline mixin

	```
	@import "compass/css3";
	@import "timeline-mixin";
	```
1. call the mixin with a class name e.g. `.breadcrumb`

	```
	.breadcrumb {
	  @include timeline(50px, 10px, #c5e1e7, 20%, white, 10px, 4);
	}
	```
1. compile SCSS to CSS

###3. with sass

1. include the files `scss/timeline-mixin.sass` as a mixin
1. with reference to file `scss/timeline.sass` import compass and the timeline mixin

	```
	@import "compass/css3"
	@import "timeline-mixin"
	```
1. call the mixin with a class name e.g. `.breadcrumb`

	```
	.breadcrumb
	  @include timeline(50px, 10px, #c5e1e7, 20%, white, 10px, 4)
	```
1. compile SASS to CSS

#options

The SASS mixin is defined with the following arguments:

```
@mixin timeline($height, $curved-corner, $background-color, $darkenby-percent, $textcolor, $seperation, $depth)
```

1. by default

	```
	// sass syntax
	.timeline
	  @include timeline(50px, 10px, #c5e1e7, 20%, #fff, 10px, 4)

	// html syntax
	<ul class="timeline">
	  <li>Baroque</li>
	  <li>Classical</li>
	  <li>Romantic</li>
	  <li>Contemporary</li>
	</ul>
	```

	![](img/eg1.png)

1. change height from `50px` to `30px`

	```
	.timeline
  		@include timeline(30px, 10px, #c5e1e7, 20%, #fff, 10px, 4)
  ```
	![](img/eg2.png)

1. change curvature from `10px` to `15px`

	```
	.timeline
  		@include timeline(30px, 15px, #c5e1e7, 20%, #fff, 10px, 4)
  ```
	![](img/eg3.png)

1. change lightest background color from `#c5e1e7` to `coral`

	```
	.timeline
  		@include timeline(30px, 15px, coral, 20%, #fff, 10px, 4)
  ```
	![](img/eg4.png)

1. change percentage darkened by from `20%` to `10%`

	```
	.timeline
  		@include timeline(30px, 15px, coral, 10%, #fff, 10px, 4)
  ```
	![](img/eg5.png)

1. change text color from `#fff` to `#000`

	```
	.timeline
  		@include timeline(30px, 15px, coral, 10%, #000, 10px, 4)
  ```
	![](img/eg6.png)

1. change seperation distance from `10px` to `5px`

	```
	.timeline
  		@include timeline(30px, 15px, coral, 10%, #000, 5px, 4)
  ```
	![](img/eg7.png)

1. change the number of items from `4` to `5`

	```
	.timeline
  		@include timeline(30px, 15px, coral, 10%, #000, 5px, 5)

  	// html
	<ul class="timeline">
	  <li>Baroque</li>
	  <li>Classical</li>
	  <li>Romantic</li>
	  <li>Contemporary</li>
	  <li>Modern</li>
	</ul>
  ```
	![](img/eg8.png)

#credit

1. AngularJS and Color picker directive for demo page

# license

(C) Sayanee Basu 2014, released under an MIT license


text:
'use strict';

module.exports = toBeEmptyString;

function toBeEmptyString(actual) {
    return actual === '';
}


text:
package reflection.methodannotations;

import reflection.AnnoT;
import reflection.AnnoT3;

public interface InterfaceTarget003 {

	@AnnoT3("shiny")
	Object brandNew(@AnnoT int x);

}


text:
{{'INVOICE_FROM' | translate}} {{invoice.company.name }}

{{ invoice.company.webSite }}

{{ invoice.company.email }}

                    <form method="POST" accept-charset="utf-8" action="https://www.liqpay.com/api/pay">
                        <input type="hidden" name="public_key" ng-value="invoice.company.integrations[1].id" />
                        <input type="hidden" name="amount" ng-value="invoice.priceVat.toFixed(2)" />
                        <input type="hidden" name="currency" ng-value="company.country | myCurrency" />
                        <input type="hidden" name="description" ng-value="description" />
                        <input type="hidden" name="type" value="buy" />
                        <input type="hidden" name="pay_way" value="card,delayed" />
                        <input type="hidden" name="server_url" ng-value="server_url" />
                        <input type="hidden" name="language" value="ru" />
                        <button type="submit" class="btn btn-success">{{'PAY_BY_CARD' | translate}}</button>
                    </form>

                     {{'SAVE_AS_PDF' | translate}}
                <button type="button" class="btn btn-primary" ng-click="printPage()"></button>

        <alert ng-repeat="alert in alerts" type="{{alert.type}}" close="closeAlert($index)">{{alert.msg}}</alert>

← {{'INVOICES' | translate}}

← {{'PAYMENTS' | translate}}

← {{'INVOICE_NUMBER' | translate}} {{ invoice.number }}  <span ng-if="(invoice.status === 'unpaid') && (invoice.dueDateNumber < nowDate)">- {{'OVERDUE' | translate}}

{{'INVOICE_NUMBER' | translate}} {{ invoice.number }}  <span ng-if="(invoice.status === 'unpaid') && (invoice.dueDateNumber < nowDate)">- {{'OVERDUE' | translate}}

{{'TEMPLATE_SELECTION' | translate}}

                            <button type="button" class="btn btn-default dropdown-toggle">
                                {{ 'MORE_OPTIONS' | translate }}
                            </button>

{{'COPY' | translate}}

{{ 'CREDIT_NOTE' | translate }}

{{'REMOVE' | translate}}

                        <button type="button" class="btn btn-default" ng-click="printPage()" title="{{'PRINT' | translate}}"></button>

                        <button type="button" class="btn btn-default" ng-click="send()">{{'SEND_OUT' | translate}}</button>

                                <button type="button" class="btn btn-primary" id="introduce-payment" ng-click="create()">{{'ENTER_PAYMENT' | translate}}</button>

                    {{'CANCEL' | translate}}
                    <button type="button" class="btn btn-primary" ng-click="sendDesign()">{{'SAVE' | translate}}</button>

{{'PAYMENTS' | translate}} ({{'BALANCE' | translate}}: {{ invoice.balance | number:2 }})

                    {{ payment.description }}

                            {{ payment.date | date: 'dd.MM.yyyy' }}

{{ payment.amount | number:2 }}

                                {{'REMOVED' | translate}}

                                <button type="button" class="btn btn-link" ng-click="returnPayment($index)">{{'CANCEL' | translate}}</button>

{{'STANDART' | translate}}

{{'LIGHT' | translate}}

{{'BLOCK' | translate}}

{{'BLOCKS' | translate}}

{{'TEMPLATE_SETTINGS' | translate}}

                 {{'FULLY_PAID' | translate}}

                     {{'SEND_TO_CLIENT' | translate}}

                     {{'VIEWED_BY_CUSTOMER' | translate}}

                     {{'PARTIALLY_PAID' | translate}}

                            {{'EDIT' | translate}}

                            <button type="button" class="btn btn-default" ng-click="editInvoiceWithPayment()">{{'EDIT' | translate}}</button>

                    {{'CHANGE_DESIGN' | translate}}

                            {{'IMAGE_TITLE' | translate}}
800400 х 300 {{'PIXELS' | translate}}

                            {{'IMAGE_TITLE' | translate}}
800400 х 300 {{'PIXELS' | translate}}

{{ invoice.company.name }}

{{ invoice.company.name }}  {{ invoice.company.address}}

{{ invoice.name }}

{{ invoice.address }}

{{ 'COUNTRIES.' + invoice.country | translate }}

{{'INVOICE'  | translate}}{{'DRAFT_INVOICE_TO_PAY' | translate}}

{{'INVOICE_NUMBER' | translate}}

{{'DATE_TERMS' | translate}}

{{'TILL_TERMS' | translate}}

{{ invoice.number}}

{{ invoice.date | date: 'dd.MM.yyyy' }}

{{ invoice.dueDate | date: 'dd.MM.yyyy' }}

                                {{'TO_PAY' | translate}} {{ invoice.company.country | myCurrency }}

                            {{ invoice.priceVat | number:2 }}

{{ invoice.additionalNotes }}

                    {{'PRODUCTS_SERVICES' | translate}}
                    {{'QUANTITY' | translate}}
                    {{'UNIT_SHORT' | translate}}
                    {{'PRICE' | translate}}
                    {{'SUM' | translate}}

{{ product.name}}
{{ product.description }}
                    {{ product.count | number:2}}
                    {{ product.measure | translate }}
                    {{ product.price | number:2}}
                    {{ product.priceSum | number:2 }}

{{'TOTALS_WO_VAT' | translate}}

{{ invoice.price | number:2 }}

{{'DISCOUNT' | translate}}  {{ invoice.discount }}%

-{{ invoice.discountAmount | number:2 }}

{{'VAT' | translate}} % {{'OF' | translate}} {{ vat.price | number:2 }}

{{ vat.count | number:2 }}

{{'TOTAL_TO_PAY' | translate}} {{ company.country | myCurrency }}

{{ invoice.priceVat | number:2 }}

{{ invoice.notes }}

{{'GENERATED_BY' | translate}} www.invoicedoctor.eu

                {{ invoice.company.name }}
                {{ invoice.company.address }}
                {{'EMAIL' | translate}}:  {{ invoice.company.email }}
                {{'TELEPHONE_NUMBER' | translate}}:  {{ invoice.company.telephoneNumber}}
                {{'WEBSITE' | translate}}:  {{ invoice.company.webSite}}
                {{'COMPANY_NUMBER' | translate}}:  {{ invoice.company.companyNumber}}
                {{'VAT_NUMBER' | translate}}:  {{ invoice.company.vatNumber}}
                {{'RESPONSIBLE_POSITION' | translate}}:  {{ invoice.company.responsiblePosition}}
                {{'BANK_NAME'| translate}}:  {{ invoice.company.bankName}}
                {{'BIT_CODE' | translate}}:  {{ invoice.company.bitCode}}
                {{'BANK_ACCOUNT' | translate}}:  {{ invoice.company.bankAccount}}
                {{'SWIFT_CODE' | translate}}:  {{ invoice.company.swiftCode}}
                IBAN:  {{ invoice.company.ibanCode}}

{{'IMAGE_TITLE' | translate}}

                <form name="images.form">

{{'UPLOAD_IMAGE' | translate}}

                        <input type="file" class="form-control" ng-model="images.headerFull.data" name="headerFullImage" id="headerFullImage" ng-change="uploadFile('headerFull')" accept="image/*" ng-hide="true">

{{'UPLOAD_IMAGE' | translate}}

                        <input type="file" class="form-control" ng-model="images.header.data" name="headerImage" id="headerImage" ng-change="uploadFile('header')" accept="image/*" ng-hide="true">

                </form>

{{'ABOUT_CLIENT' | translate}}

                        <input type="radio" name="header" id="headerLeft" ng-model="design.header" value="left">
                        {{'LEFTWARD' | translate}}

                        <input type="radio" name="header" id="headerRight" ng-model="design.header" value="right">
                        {{'RIGHTWARD' | translate}}

{{'COLOR' | translate}}

                        <input type="radio" name="design.color" ng-click="design.color = 'gainsboro'" ng-checked="design.color === 'gainsboro'">

                        <input type="radio" name="design.color" ng-click="design.color = 'deepskyblue'" ng-checked="design.color === 'deepskyblue'">

                        <input type="radio" name="design.color" ng-click="design.color = branch.color" ng-checked="design.color !== 'gainsboro' && design.color !== 'deepskyblue'">

{{'TEXT_COLOR' | translate}}

                        <input type="radio" name="design.colorText" ng-click="design.colorText = 'white'" ng-checked="design.colorText === 'white' && design.lines !== 'light'">

                        <input type="radio" name="design.colorText" ng-click="design.colorText = 'black'" ng-checked="design.colorText === 'black'">

                        <input type="radio" name="design.colorText" ng-click="design.colorText = branch.colorText"
                               ng-checked="(design.colorText !== 'white' && design.colorText !== 'black') || (design.lines === 'light' && design.colorText === 'white') ">

{{'ALT_COLOR' | translate}}

                        <input type="radio" name="design.colorAlt" ng-click="design.colorAlt = 'gainsboro'" ng-checked="design.colorAlt === 'gainsboro'">

                        <input type="radio" name="design.colorAlt" ng-click="design.colorAlt = 'deepskyblue'" ng-checked="design.colorAlt === 'deepskyblue'">

                        <input type="radio" name="design.colorAlt" ng-click="design.colorAlt = branch.colorAlt" ng-checked="design.colorAlt !== 'gainsboro' && design.colorAlt !== 'deepskyblue'">

{{ 'ALT_TEXT_COLOR' | translate}}

                        <input type="radio" name="design.colorAltText" ng-click="design.colorAltText = 'white'" ng-checked="design.colorAltText === 'white'">

                        <input type="radio" name="design.colorAltText" ng-click="design.colorAltText = 'black'" ng-checked="design.colorAltText === 'black'">

                        <input type="radio" name="design.colorAltText" ng-click="design.colorAltText = branch.colorAltText" ng-checked="design.colorAltText !== 'white' && design.colorAltText !== 'black'">

{{'OTHER_OPTIONS' | translate}}

                    <input type="checkbox" ng-model="design.returnAddress">
                        {{'SHOW_RETURN_ADDRESS' | translate}}

                    <input type="checkbox" ng-model="design.nameLogo">
                        {{'SHOW_COMPANY_NAME_LOGO' | translate}}

                    <input type="checkbox" ng-model="design.amount">
                        {{'SHOW_QUANTITY' | translate}}

                    <input type="checkbox" ng-model="design.unit">
                        {{'SHOW_UNIT' | translate}}

                    <input type="checkbox" ng-model="design.price">
                        {{'SHOW_PRICE' | translate}}

                    <input type="checkbox" ng-model="design.sum">
                        {{'SHOW_AMOUNT' | translate}}

{{'FOOTER' | translate}}

                        <input type="radio" name="design.footer" id="footerTrue" ng-model="design.footer" ng-value="true">
                        {{'ON' | translate}}

                        <input type="radio" name="design.footer" id="footerFalse" ng-model="design.footer" ng-value="false">
                        {{'OFF' | translate}}


text:
var uuid = require('node-uuid');
var fs = require('fs');
var sys = require('sys');
var exec = require('child_process').exec;

exports.index = function(req, res){
  console.log("GET (index): " + JSON.stringify(req.headers));

  res.send('index parsebytes');
};

exports.new = function(req, res){
  console.log("GET (new), header:" + JSON.stringify(req.headers) + "\n" + JSON.stringify(req.body));

  res.send('new parsebytes');
};

exports.create = function(req, res){
  console.log("POST (create): " + JSON.stringify(req.headers) + "\n" + JSON.stringify(req.body));

  var clientIP = req.headers['x-forwarded-for'] ||
    req.connection.remoteAddress ||
    req.socket.remoteAddress ||
    req.connection.socket.remoteAddress;
  var guid =uuid.v1();
  var filename = './tmp/data/'+ clientIP + '_' + guid;
  console.log(filename);

  req.body.data = req.body.data.trim();
  fs.writeFile(filename, req.body.data, function(error) {
    if (error) {
      console.log(error);
      res.send(JSON.stringify({'results': error}));
      return;
    }

    console.log(filename + ' saved successfully');

    var  osslTool = '';
    if (req.body.data.indexOf('-----BEGIN CERTIFICATE REQUEST-----') >= 0) {
      osslTool = 'req';
    } else if (req.body.data.indexOf('-----BEGIN CERTIFICATE-----') >= 0) {
      osslTool = 'x509';
    } else if (req.body.data.indexOf('-----BEGIN X509 CRL-----') >= 0) {
      osslTool = 'crl';
    } else if (req.body.data.indexOf('-----BEGIN PKCS7-----') >= 0) {
      osslTool = 'pkcs7';
    } else if (req.body.data.indexOf('-----BEGIN PKCS12-----') >= 0) {
      osslTool = 'pkcs12';
    } else if (req.body.data.indexOf('-----BEGIN RSA PRIVATE KEY-----') >= 0) {
      osslTool = 'rsa';
    } else if (req.body.data.indexOf('-----BEGIN DSA PRIVATE KEY-----') >= 0) {
      osslTool = 'dsa';
    } else {
      res.send(JSON.stringify({'results': 'Bad input'}));
      return;
    }

    var cmd = 'openssl ' + osslTool + ' -inform PEM -in ' + filename + ' -text -noout';
    console.log(cmd);

    exec(cmd, function(error, stdout, stderr) {
      sys.puts('error: ' + error);
      sys.puts('stdout: ' + stdout);
      sys.puts('stderr: ' + stderr);
      var output = {
        'results': (stdout.trim().length > 0) ? stdout.trim() : stderr.trim()
      };
      res.send(JSON.stringify(output));

      // delete temp data file
      fs.unlink(filename);
    });
  });

  //res.send('create parsebytes ' + clientIP);
};

exports.show = function(req, res){
  console.log("GET (show): " + JSON.stringify(req.headers) + "\n" + JSON.stringify(req.body));

  res.send('show parsebytes ' + req.params.parsebytes);
};

exports.edit = function(req, res){
  console.log("GET (edit): " + JSON.stringify(req.headers) + "\n" + JSON.stringify(req.body));

  res.send('edit parsebytes ' + req.params.parsebytes);
};

exports.update = function(req, res){
  console.log("PUT (update): " + JSON.stringify(req.headers) + "\n" + JSON.stringify(req.body));

  res.send('update parsebytes ' + req.params.parsebytes);
};

exports.patch = function(req, res){
  console.log("PATCH (patch): " + JSON.stringify(req.headers) + "\n" + JSON.stringify(req.body));

  res.send('patch parsebytes ' + req.params.parsebytes);
};

exports.destroy = function(req, res){
  console.log("DELETE (destroy): " + JSON.stringify(req.headers) + "\n" + JSON.stringify(req.body));

  res.send('destroy parsebytes ' + req.params.parsebytes);
};


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Azure.Documents.Client;

namespace NEventStore.Persistence.DocumentDB
{
    public class DocumentPersistenceOptions
    {
        private const string DefaultDatabaseName = "NEventStore";
        private const string DefaultCommitCollectionName = "Commits";
        private const string DefaultStreamHeadCollectionName = "StreamHeads";

        public DocumentPersistenceOptions(
            string databaseName = DefaultDatabaseName,
            string commitCollectionName = DefaultCommitCollectionName,
            string streamHeaadCollectionName = DefaultStreamHeadCollectionName)
        {
            this.DatabaseName = databaseName;
            this.CommitCollectionName = commitCollectionName;
            this.StreamHeadCollectionName = streamHeaadCollectionName;
        }

        public string DatabaseName { get; private set; }
        public string CommitCollectionName { get; set; }
        public string StreamHeadCollectionName { get; set; }

        internal DocumentClient GetDocumentClient(string url, string key)
        {
            return new DocumentClient(new Uri(url), key);
        }

    }
}


text:
sap.ui.define(['jquery.sap.global', 'sap/ui/core/Control', './TimePickerSlidersRenderer', './TimePickerSlider', './VisibleItem'],
	function (jQuery, Control, SlidersRenderer, TimePickerSlider, VisibleItem) {
		"use strict";

		/**
		 * Constructor for a new TimePickerSliders.
		 *
		 * @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
		 * A picker list container control used inside the {@link sap.m.TimePicker} to hold all the sliders
		 * @extends sap.ui.core.Control
		 *
		 * @author SAP SE
		 * @version 1.44.46
		 *
		 * @constructor
		 * @private
		 * @since 1.32
		 * @alias sap.m.TimePickerSliders
		 */
		var TimePickerSliders = Control.extend("sap.m.TimePickerSliders", /** @lends sap.m.TimePicker.prototype */ {
			metadata : {
				library : "sap.m",
				properties : {

					/**
					 * Defines the time format.
					 *
					 * Corresponds to the displayFormat of the parent sap.m.TimePicker control.
					 */
					format: { name: "format", type: "string"},

					/**
					 * Defines the text of the picker label.
					 *
					 * It is read by screen readers. It is visible only on phone.
					 */
					labelText: {name: "labelText", type: "string"},

					/**
					 * Sets the minutes slider step.
					 * The minutes slider is populated only by multiples of the step.
					 * @since 1.40
					 */
					minutesStep: {type: "int", group: "Misc", defaultValue: 1},

					/**
					 * Sets the seconds slider step.
					 * The seconds slider is populated only by multiples of the step.
					 * @since 1.40
					 */
					secondsStep: {type: "int", group: "Misc", defaultValue: 1}
				},
				aggregations: {

					/**
					 * Holds the inner sliders.
					 */
					_columns: { type: "sap.m.TimePickerSlider", multiple: true, visibility: "hidden" }
				},
				associations: {

					/**
					 * The time picker control that instantiated this sliders
					 */
					invokedBy: { type: "sap.m.TimePicker", multiple: false }
				}
			},
			renderer: SlidersRenderer.render
		});

		/**
		 * Initializes the control.
		 *
		 * @public
		 */
		TimePickerSliders.prototype.init = function () {
			//ToDo: //ToDo: This is inconsistent with the parent locale (if set). Add 'localeID' property to this control which will read its parent 'localeID' property
			var oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale(),
				aPeriods = sap.ui.core.LocaleData.getInstance(oLocale).getDayPeriods("abbreviated");

			this._fnLayoutChanged = jQuery.proxy(this._onOrientationChanged, this);
			sap.ui.Device.resize.attachHandler(this._fnLayoutChanged);

			this._sAM = aPeriods[0];
			this._sPM = aPeriods[1];
		};

		TimePickerSliders.prototype.exit = function () {
			this.$().off(!!sap.ui.Device.browser.firefox ? "DOMMouseScroll" : "mousewheel", this._onmousewheel);
			sap.ui.Device.resize.detachHandler(this._fnOrientationChanged);
		};

		TimePickerSliders.prototype.onAfterRendering = function() {
			this.$().off(!!sap.ui.Device.browser.firefox ? "DOMMouseScroll" : "mousewheel", this._onmousewheel);
			this.$().on(!!sap.ui.Device.browser.firefox ? "DOMMouseScroll" : "mousewheel", jQuery.proxy(this._onmousewheel, this));

			if (!sap.ui.Device.browser.msie) {
				/* This method is called here prematurely to ensure slider loading on time.
				 * Make sure _the browser native focus_ is not actually set on the early call (the "true" param)
				 * because that fires events and results in unexpected behaviors */
				this._initFocus(true);
			}
		};

		/**
		 * Sets the invokedBy association, which is a link with the time picker that
		 * gives the display format.
		 *
		 * @param {string} sId The ID of the TimePicker control that owns this sliders
		 * @returns {sap.m.TimePickerSliders} this instance, used for chaining
		 */
		TimePickerSliders.prototype.setInvokedBy = function(sId) {
			var oLocale,
				aPeriods,
				aColumns;

			this.setAssociation("invokedBy", sId);

			if (sap.ui.getCore().byId(sId)) {
				oLocale = new sap.ui.core.Locale(sap.ui.getCore().byId(sId).getLocaleId());
				aPeriods = sap.ui.core.LocaleData.getInstance(oLocale).getDayPeriods("abbreviated");

				this._sAM = aPeriods[0];
				this._sPM = aPeriods[1];

				aColumns = this.getAggregation("_columns");

				if (aColumns) {
					this.destroyAggregation("_columns");
				}

				this._setupLists(this.getFormat());
			}

			return this;
		};

		/**
		 * Sets the text for the picker label.
		 *
		 * @param {string} sLabelText A text for the label
		 * @returns {sap.m.TimePickerSliders} this instance, used for chaining
		 * @public
		 */
		TimePickerSliders.prototype.setLabelText = function(sLabelText) {
			var $ContainerLabel;

			this.setProperty("labelText", sLabelText, true);

			if (!sap.ui.Device.system.desktop) {
				$ContainerLabel = jQuery(this.getDomRef("label"));
				if ($ContainerLabel) {
					$ContainerLabel.html(sLabelText);
				}
			}

			return this;
		};

		/**
		 * Sets the time format.
		 *
		 * @param sFormat {string} New display format
		 * @returns {sap.m.TimePickerSliders} this instance, used for chaining
		 * @public
		 */
		TimePickerSliders.prototype.setFormat = function (sFormat) {
			//ToDo add validation of the format before setting it
			this.setProperty("format", sFormat, true);
			var aColumns = this.getAggregation("_columns");

			if (aColumns) {
				this.destroyAggregation("_columns");
			}

			this._setupLists(sFormat);

			return this;
		};

		/**
		 * Sets the minutes slider step.
		 * @param iValue The step used to generate values for the minutes slider
		 * @returns {*} this
		 * @public
		 */
		TimePickerSliders.prototype.setMinutesStep = function(iValue) {
			this.setProperty("minutesStep", iValue, true);
			var aColumns = this.getAggregation("_columns");

			if (aColumns) {
				this.destroyAggregation("_columns");
			}

			this._setupLists(this.getFormat());

			return this;
		};

		/**
		 * Sets the seconds slider step.
		 * @param iValue The step used to generate values for the seconds slider
		 * @returns {*} this
		 * @public
		 */
		TimePickerSliders.prototype.setSecondsStep = function(iValue) {
			this.setProperty("secondsStep", iValue, true);
			var aColumns = this.getAggregation("_columns");

			if (aColumns) {
				this.destroyAggregation("_columns");
			}

			this._setupLists(this.getFormat());

			return this;
		};

		/**
		 * Gets the time values from the sliders, as a date object.
		 *
		 * @returns {Object} A JavaScript date object
		 * @public
		 */
		TimePickerSliders.prototype.getTimeValues = function () {
			var oCore = sap.ui.getCore(),
				oListHours = oCore.byId(this.getId() + "-listHours"),
				oListMinutes = oCore.byId(this.getId() + "-listMins"),
				oListSeconds = oCore.byId(this.getId() + "-listSecs"),
				oListAmPm = oCore.byId(this.getId() + "-listFormat"),
				iHours = null,
				sAmpm = null,
				oDateValue = new Date();

			if (oListHours) {
				iHours = parseInt(oListHours.getSelectedValue(), 10);
			}

			if (oListAmPm) {
				sAmpm = oListAmPm.getSelectedValue();
			}

			if (sAmpm === "am" && iHours === 12) {
				iHours = 0;
			} else if (sAmpm === "pm" && iHours !== 12) {
				iHours += 12;
			}

			if (iHours !== null) {
				oDateValue.setHours(iHours.toString());
			}

			if (oListMinutes) {
				oDateValue.setMinutes(oListMinutes.getSelectedValue());
			}

			if (oListSeconds) {
				oDateValue.setSeconds(oListSeconds.getSelectedValue());
			}

			return oDateValue;
		};

		/**
		 * Sets the values of the slider controls, given a JavaScript date object.
		 *
		 * @param oDate {Object} The date to use as a setting, if not provided the current date will be used
		 * @public
		 */
		TimePickerSliders.prototype.setTimeValues = function (oDate) {
			var oCore = sap.ui.getCore(),
				oListHours = oCore.byId(this.getId() + "-listHours"),
				oListMinutes = oCore.byId(this.getId() + "-listMins"),
				oListSeconds = oCore.byId(this.getId() + "-listSecs"),
				oListAmPm = oCore.byId(this.getId() + "-listFormat"),
				iHours,
				sAmPm = null;

			oDate = oDate || new Date();
			iHours = oDate.getHours();

			if (oListAmPm) {
				//ToDo: Replace this hardcoded values with their translated text in order to have UI API value consistency
				sAmPm = iHours >= 12 ? "pm" : "am";
				iHours = (iHours > 12) ? iHours - 12 : iHours;
				iHours = (iHours === 0 ? 12 : iHours);
			}

			oListHours && oListHours.setSelectedValue(iHours.toString());
			oListMinutes && oListMinutes._updateStepAndValue(oDate.getMinutes(), this.getMinutesStep());
			oListSeconds && oListSeconds._updateStepAndValue(oDate.getSeconds(), this.getSecondsStep());
			oListAmPm && oListAmPm.setSelectedValue(sAmPm);
		};

		/**
		 * Collapses all the slider controls.
		 *
		 * @public
		 */
		TimePickerSliders.prototype.collapseAll = function () {
			//collapse the expanded sliders
			var aSliders = this.getAggregation("_columns");

			if (aSliders) {
				for ( var iIndex = 0; iIndex < aSliders.length; iIndex++) {
					if (aSliders[iIndex].getIsExpanded()) {
						aSliders[iIndex].setIsExpanded(false);
					}
				}
			}
		};

		/**
		 * Updates the values of all slider controls.
		 *
		 * @public
		 */
		TimePickerSliders.prototype.updateSlidersValues = function () {
			//collapse the expanded slider
			var aSliders = this.getAggregation("_columns");

			if (aSliders) {
				for ( var iIndex = 0; iIndex < aSliders.length; iIndex++) {
					aSliders[iIndex]._updateScroll(); //updates scroll position if needed
				}
			}
		};

		/**
		 * Handles the home key event.
		 *
		 * Focuses the first slider control.
		 * @param {jQuery.Event} oEvent Event object
		 */
		TimePickerSliders.prototype.onsaphome = function(oEvent) {
			var oCurrentSlider = this._getCurrentSlider();

			if (oCurrentSlider && document.activeElement === oCurrentSlider.getDomRef()) {
				this.getAggregation("_columns")[0].focus();
			}
		};

		/**
		 * Handles the end key event.
		 *
		 * Focuses the last slider control.
		 * @param {jQuery.Event} oEvent Event object
		 */
		TimePickerSliders.prototype.onsapend = function(oEvent) {
			var oCurrentSlider = this._getCurrentSlider();

			if (oCurrentSlider && document.activeElement === oCurrentSlider.getDomRef()) {
				var aSliders = this.getAggregation("_columns");
				aSliders[aSliders.length - 1].focus();
			}
		};

		/**
		 * Handles the left arrow key event.
		 *
		 * Focuses the previous slider control.
		 * @param {jQuery.Event} oEvent Event object
		 */
		TimePickerSliders.prototype.onsapleft = function(oEvent) {
			var oCurrentSlider = this._getCurrentSlider(),
				iCurrentSliderIndex = -1,
				iNextIndex = -1,
				aSliders = this.getAggregation("_columns");

			if (oCurrentSlider && document.activeElement === oCurrentSlider.getDomRef()) {
				iCurrentSliderIndex = aSliders.indexOf(oCurrentSlider);
				iNextIndex = iCurrentSliderIndex > 0 ? iCurrentSliderIndex - 1 : aSliders.length - 1;
				aSliders[iNextIndex].focus();
			}
		};

		/**
		 * Handles the right arrow key event.
		 *
		 * Focuses the next slider control.
		 * @param {jQuery.Event} oEvent Event object
		 */
		TimePickerSliders.prototype.onsapright = function(oEvent) {
			var oCurrentSlider = this._getCurrentSlider(),
				iCurrentSliderIndex = -1,
				iNextIndex = -1,
				aSliders = this.getAggregation("_columns");

			if (oCurrentSlider && document.activeElement === oCurrentSlider.getDomRef()) {
				iCurrentSliderIndex = aSliders.indexOf(oCurrentSlider);
				iNextIndex = iCurrentSliderIndex < aSliders.length - 1 ? iCurrentSliderIndex + 1 : 0;
				aSliders[iNextIndex].focus();
			}
		};

		/**
		 * Handles the mouse scroll event.
		 *
		 * @param {jQuery.Event} oEvent Event object
		 */
		TimePickerSliders.prototype._onmousewheel = function(oEvent) {
			var currentSlider = this._getCurrentSlider();

			if (currentSlider) {
				currentSlider._onmousewheel(oEvent);
			}
		};

		/**
		 * Handles the orientation change event.
		 *
		 * @private
		 */
		TimePickerSliders.prototype._onOrientationChanged = function() {
			var aSliders = this.getAggregation("_columns");

			if (!aSliders) {
				return;
			}

			for ( var i = 0; i < aSliders.length; i++) {
				if (aSliders[i].getIsExpanded()) {
					aSliders[i]._updateSelectionFrameLayout();
				}
			}
		};

		/**
		 * Focuses the first slider control.
		 *
		 * @param {boolean} bSkipDesktopFocus Indicates whether the focus event is fired on the desktop platform
		 * @private
		 */
		TimePickerSliders.prototype._initFocus = function(bSkipDesktopFocus) {
			// the focus is supposed to trigger setIsExpanded(true) for the desktop
			if (sap.ui.Device.system.desktop && !bSkipDesktopFocus) {
				this.getAggregation("_columns")[0].focus();
			} else {
				this.getAggregation("_columns")[0].setIsExpanded(true);
			}
		};

		/**
		 * Generates the sliders' control values in the provided number range.
		 *
		 * @param {number} iFrom Starting number
		 * @param {number} iTo Ending number
		 * @param {number} bLeadingZeroes Whether to add leading zeroes to number values
		 * @returns {array} Array of key/value pairs
		 * @private
		 */
		TimePickerSliders.prototype._generatePickerListValues = function (iFrom, iTo, iStep, bLeadingZeroes) {
			var aValues = [],
				sText;

			for (var iIndex = iFrom; iIndex <= iTo; iIndex += 1) {
				if (iIndex < 10 && bLeadingZeroes) {
					sText = "0" + iIndex.toString();
				} else {
					sText = iIndex.toString();
				}

				var oItem = new VisibleItem({
					key: iIndex.toString(),
					text: sText
				});

				if (iIndex % iStep !== 0) {
					oItem.setVisible(false);
				}

				aValues.push(oItem);
			}

			return aValues;
		};

		/**
		 * Creates the sliders of the picker based on the format.
		 *
		 * @param {string} sFormat Display format
		 * @private
		 */
		TimePickerSliders.prototype._setupLists = function (sFormat) {
			var oRb = sap.ui.getCore().getLibraryResourceBundle("sap.m"),
				sLabelHours = oRb.getText("TIMEPICKER_LBL_HOURS"),
				sLabelMinutes = oRb.getText("TIMEPICKER_LBL_MINUTES"),
				sLabelSeconds = oRb.getText("TIMEPICKER_LBL_SECONDS"),
				//ToDo This value will be always "AM/PM" due to bad translation string. Consider replacing it with something like this._sAM + / + this._sPM
				sLabelAMPM = oRb.getText("TIMEPICKER_LBL_AMPM"),
				iMinutesStep = this.getMinutesStep(),
				iSecondsStep = this.getSecondsStep();

			if (sFormat === undefined) {
				return;
			}

			var bHours = false, bHoursTrailingZero = false, iFrom, iTo;

			if (sFormat.indexOf("HH") !== -1) {
				bHours = true;
				iFrom = 0;
				iTo = 23;
				bHoursTrailingZero = true;
			} else if (sFormat.indexOf("H") !== -1) {
				bHours = true;
				iFrom = 0;
				iTo = 23;
			} else if (sFormat.indexOf("hh") !== -1) {
				bHours = true;
				iFrom = 1;
				iTo = 12;
				bHoursTrailingZero = true;
			} else if (sFormat.indexOf("h") !== -1) {
				bHours = true;
				iFrom = 1;
				iTo = 12;
			}

			if (bHours) {
				this.addAggregation("_columns", new TimePickerSlider(this.getId() + "-listHours", {
					items: this._generatePickerListValues(iFrom, iTo, 1, bHoursTrailingZero),
					expanded: jQuery.proxy(onSliderExpanded, this),
					label: sLabelHours
				}));
			}

			if (sFormat.indexOf("m") !== -1) {
				var aValues = this._generatePickerListValues(0, 59, iMinutesStep, true);

				this.addAggregation("_columns", new TimePickerSlider(this.getId() + "-listMins", {
					items: aValues,
					expanded: jQuery.proxy(onSliderExpanded, this),
					label: sLabelMinutes
				}));
			}

			if (sFormat.indexOf("s") !== -1) {
				var aValues = this._generatePickerListValues(0, 59, iSecondsStep, true);
				this.addAggregation("_columns", new TimePickerSlider(this.getId() + "-listSecs", {
					items: aValues,
					expanded: jQuery.proxy(onSliderExpanded, this),
					label: sLabelSeconds
				}));
			}

			if (sFormat.indexOf("a") !== -1) {
				this.addAggregation("_columns", new TimePickerSlider(this.getId() + "-listFormat", {
					items: [
						{ key: "am", text: this._sAM },
						{ key: "pm", text: this._sPM }
					],
					expanded: jQuery.proxy(onSliderExpanded, this),
					label: sLabelAMPM,
					isCyclic: false
				}).addStyleClass("sapMTimePickerSliderShort"));
			}

			this.getAggregation("_columns")[0].setIsExpanded(true);

			/**
			 * Default expanded handler
			 * @param oEvent {jQuery.Event} Event object
			 */
			function onSliderExpanded(oEvent) {
				var aSliders = this.getAggregation("_columns");

				for (var i = 0; i < aSliders.length; i++) {
					if (aSliders[i] !== oEvent.oSource && aSliders[i].getIsExpanded()) {
						aSliders[i].setIsExpanded(false);
					}
				}
			}
		};

		/**
		 * Gets the currently expanded slider control.
		 *
		 * @returns {sap.m.TimePickerSlider|null} Currently expanded slider control or null if there is none
		 */
		TimePickerSliders.prototype._getCurrentSlider = function() {
			var aSliders = this.getAggregation("_columns");

			if (aSliders) {
				for (var i = 0; i < aSliders.length; i++) {
					if (aSliders[i].getIsExpanded()) {
						return aSliders[i];
					}
				}
			}

			return null;
		};

		return TimePickerSliders;
	}, /* bExport= */ false);


text:
require 'helper'

scope 'assert' do
  test 'passes if the value is true' do
    assert true
  end

  test 'fails if the value is false' do
    assert_raises(Oktobertest::TestFailed) { assert false }
  end
end

scope 'assert_raises' do
  test 'passes if the block raises the given exception' do
    assert_raises(RuntimeError) { raise RuntimeError }
  end

  test 'fails if the block does not raise the given exception' do
    assert_raises Oktobertest::TestFailed do
      assert_raises(RuntimeError) { raise ArgumentError }
    end
  end
end

scope 'flunk' do
  test 'raises Oktobertest::TestFailed exception' do
    assert_raises(Oktobertest::TestFailed) { flunk }
  end
end

scope 'skip' do
  test 'raises Oktobertest::TestSkipped exception' do
    assert_raises(Oktobertest::TestSkipped) { skip }
  end
end


text:
// flow-typed signature: 7d4bed85e3f2bcbf3ed14c9acd93daee
// flow-typed version: <<STUB>>/uglifyjs-webpack-plugin_v^1.1.5/flow_v0.63.0

/**
 * This is an autogenerated libdef stub for:
 *
 *   'uglifyjs-webpack-plugin'
 *
 * Fill this stub out by replacing all the `any` types.
 *
 * Once filled out, we encourage you to share your work with the
 * community by sending a pull request to:
 * https://github.com/flowtype/flow-typed
 */

declare module "uglifyjs-webpack-plugin" {
  declare module.exports: any;
}

/**
 * We include stubs for each file inside this npm package in case you need to
 * require those files directly. Feel free to delete any files that aren't
 * needed.
 */
declare module "uglifyjs-webpack-plugin/dist/cjs" {
  declare module.exports: any;
}

declare module "uglifyjs-webpack-plugin/dist/index" {
  declare module.exports: any;
}

declare module "uglifyjs-webpack-plugin/dist/uglify/index" {
  declare module.exports: any;
}

declare module "uglifyjs-webpack-plugin/dist/uglify/minify" {
  declare module.exports: any;
}

declare module "uglifyjs-webpack-plugin/dist/uglify/versions" {
  declare module.exports: any;
}

declare module "uglifyjs-webpack-plugin/dist/uglify/worker" {
  declare module.exports: any;
}

// Filename aliases
declare module "uglifyjs-webpack-plugin/dist/cjs.js" {
  declare module.exports: $Exports<"uglifyjs-webpack-plugin/dist/cjs">;
}
declare module "uglifyjs-webpack-plugin/dist/index.js" {
  declare module.exports: $Exports<"uglifyjs-webpack-plugin/dist/index">;
}
declare module "uglifyjs-webpack-plugin/dist/uglify/index.js" {
  declare module.exports: $Exports<"uglifyjs-webpack-plugin/dist/uglify/index">;
}
declare module "uglifyjs-webpack-plugin/dist/uglify/minify.js" {
  declare module.exports: $Exports<
    "uglifyjs-webpack-plugin/dist/uglify/minify"
  >;
}
declare module "uglifyjs-webpack-plugin/dist/uglify/versions.js" {
  declare module.exports: $Exports<
    "uglifyjs-webpack-plugin/dist/uglify/versions"
  >;
}
declare module "uglifyjs-webpack-plugin/dist/uglify/worker.js" {
  declare module.exports: $Exports<
    "uglifyjs-webpack-plugin/dist/uglify/worker"
  >;
}


text:
---
layout: default
---

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/mzlogin/kityminder-core@dev/dist/kityminder.core.css">

{{ content }}


text:
using System;
using System.Collections.Generic;
using System.Text;

namespace Xceed.Wpf.DataGrid
{
  internal class WeakDataGridContextKey
  {
    public WeakDataGridContextKey( DataGridContext dataGridContext )
    {
      DataGridContext parentDataGridContext = dataGridContext.ParentDataGridContext;
      int level = 0;
      while( parentDataGridContext != null )
      {
        level++;
        parentDataGridContext = parentDataGridContext.ParentDataGridContext;
      }

      System.Diagnostics.Debug.Assert( ( ( level == 0 ) || ( dataGridContext.SourceDetailConfiguration != null ) ),
        "A child dataGridContext must have a SourceDetailConfiguration." );

      m_sourceDetailConfigurationRelationName = ( dataGridContext.SourceDetailConfiguration != null ) ?
        dataGridContext.SourceDetailConfiguration.RelationName : string.Empty;

      if( level > 0 )
      {
        // We are NOT dealing with the root DataGridContext.

        // Build the tree of master items.
        m_weakItemsTree = new WeakReference[ level ];

        DataGridContext tempDataGridContext = dataGridContext;
        for( int i = level - 1; i >= 0; i-- )
        {
          // Ensure to get a reference to the System.Data.DataRow when doing a
          // save/restore of a System.Data.DataRowView since the view is recreated
          // for every detail views
          object parentItem = ItemsSourceHelper.TryGetDataRowFromDataItem( tempDataGridContext.ParentItem );

          m_weakItemsTree[ i ] = new WeakReference( parentItem );

          tempDataGridContext = tempDataGridContext.ParentDataGridContext;
        }
      }

      this.Initialize();
    }

    private void Initialize()
    {
      m_cachedHash = 0;

      if( !string.IsNullOrEmpty( m_sourceDetailConfigurationRelationName ) )
        m_cachedHash = m_sourceDetailConfigurationRelationName.GetHashCode();

      if( m_weakItemsTree != null )
      {
        // We use this hashing algorithm in order to get a different hashCode
        // when the same values are in a different order in the object array.
        int weakItemsTreeLength = m_weakItemsTree.Length;
        for( int i = 0; i < weakItemsTreeLength; i++ )
        {
          object item = m_weakItemsTree[ i ].Target;

          System.Diagnostics.Debug.Assert( item != null, "Item should still be referenced by the Child DataGridContext at this point!." );

          m_cachedHash ^= item.GetHashCode();
          m_cachedHash += ( m_cachedHash << 10 );
          m_cachedHash ^= ( m_cachedHash >> 6 );
        }
      }
    }

    private int m_cachedHash;

    public override int GetHashCode()
    {
      return m_cachedHash;
    }

    private WeakReference[] m_weakItemsTree;
    private string m_sourceDetailConfigurationRelationName;

    public override bool Equals( object obj )
    {
      WeakDataGridContextKey weakDataGridContextKey = obj as WeakDataGridContextKey;

      if( weakDataGridContextKey == null )
        return false;

      if( m_cachedHash != weakDataGridContextKey.m_cachedHash )
        return false;

      if( m_sourceDetailConfigurationRelationName != weakDataGridContextKey.m_sourceDetailConfigurationRelationName )
        return false;

      int dataGridContextStatusKeyLength = ( weakDataGridContextKey.m_weakItemsTree == null ) ? 0 : weakDataGridContextKey.m_weakItemsTree.Length;
      int myLength = ( m_weakItemsTree == null ) ? 0 : m_weakItemsTree.Length;

      if( myLength != dataGridContextStatusKeyLength )
        return false;

      for( int i = 0; i < dataGridContextStatusKeyLength; i++ )
      {
        object sourceItem = m_weakItemsTree[ i ].Target;
        object targetItem = weakDataGridContextKey.m_weakItemsTree[ i ].Target;

        if( !object.Equals( sourceItem, targetItem ) )
          return false;
      }

      return true;
    }
  }

}


text:
using Orchard.Environment.Extensions.Features;

namespace Orchard.Environment.Extensions
{
    public interface IExtensionDependencyStrategy
    {
        bool HasDependency(IFeatureInfo observer, IFeatureInfo subject);
    }
}


text: <ng-include src="'./app/manipulate_author/author_form.template.html'"></ng-include>


text:
include Makefile.config

# Architecture configuration
include $(ARCH).arch

# Profile configuration
include $(PROFILE).profile

# Internal absolute paths
INT_BIN_PATH=$(PROJECT_PATH)/$(BIN_PATH)/$(ARCH_PREFIX)/$(PROFILE_PREFIX)
INT_BUILD_PATH=$(PROJECT_PATH)/$(BUILD_PATH)/$(ARCH_PREFIX)/$(PROFILE_PREFIX)
INT_SRC_PATH=$(PROJECT_PATH)/$(SRC_PATH)
INT_DOC_PATH=$(PROJECT_PATH)/$(DOC_PATH)
INT_DIST_PATH=$(PROJECT_PATH)/$(DIST_PATH)/$(ARCH_PREFIX)/$(PROFILE_PREFIX)
INT_DATA_PATH=$(PROJECT_PATH)/$(DATA_PATH)

# Final argument lists
CCFLAGS+=$(PROFILE_CCFLAGS)
CXXFLAGS+=$(PROFILE_CXXFLAGS)
LDFLAGS+=$(PROFILE_LDFLAGS)
ARFLAGS+=$(PROFILE_ARFLAGS)
STRIPFLAGS+=$(PROFILE_STRIPFLAGS)

# Lists of source and object files and paths

SRC_DIRS=$(INT_SRC_PATH) $(addprefix $(INT_SRC_PATH)/, $(SRC_SUBDIRS))
BUILD_DIRS=$(INT_BUILD_PATH) $(addprefix $(INT_BUILD_PATH)/, $(SRC_SUBDIRS))
INCLUDE_DIRS=$(SRC_DIRS) $(addprefix $(INT_SRC_PATH)/, $(INC))

SRCS=$(filter-out $(addprefix $(INT_SRC_PATH)/,$(EXCLUDE)), $(foreach dir, $(SRC_DIRS), $(wildcard $(dir)/*.cpp) $(wildcard $(dir)/*.c)) )
OBJS=$(patsubst $(INT_SRC_PATH)/%.c, $(INT_BUILD_PATH)/%.o, $(patsubst $(INT_SRC_PATH)/%.cpp, $(INT_BUILD_PATH)/%.o, $(SRCS)) )
DEPS=$(patsubst %.o, %.d, $(OBJS))

LIBRARIES=$(LIBS)

# Primary targets (used with make <target>).
.PHONY: all target clean install deps dist distclean doc docclean bin additional additionalclean alldeps allclean start_message

# Builds the entire project (target and additional makefiles).
all: start_message $(INT_BIN_PATH)/$(TARGET)
	@echo Build completed.
	@echo
	$(additional_makes)

# Builds the main target.
target: $(INT_BIN_PATH)/$(TARGET);
	@echo Build completed.

# Build dependencies.
deps: $(SRCS) $(DEPS)
	@echo Dependencies generated successfully.

# Removes temporary objects, final binaries and dependency files.
clean:
	@echo Cleaning temporary, intermediate and final files.
	@rm -rf $(addsuffix /*.o, $(BUILD_DIRS))
	@rm -rf $(addsuffix /*.d, $(BUILD_DIRS))
	@rm -rf $(addsuffix /*~, $(BUILD_DIRS))
	@rm -rf $(INT_BIN_PATH)/$(TARGET)
	@echo Completed.

install:
	$(error Not implemented, yet)

# Generates a tar.gz for distribution with the binary and the /data contents.
dist: $(INT_BIN_PATH)/$(TARGET)
	@mkdir -p $(INT_DIST_PATH)
	@rm -rf $(INT_DIST_PATH)/*
	-@cp -r $(INT_BIN_PATH)/* $(INT_DIST_PATH) 2> /dev/null
	-@cp -r $(INT_DATA_PATH)/* $(INT_DIST_PATH) 2> /dev/null
	@cd $(INT_DIST_PATH) && tar -cz -f $(DISTFILE).tar.gz *

# Removes /dist contents.
distclean:
	@mkdir -p $(INT_DIST_PATH)
	@rm -rf $(INT_DIST_PATH)/*

# Generates Doxygen documentation.
doc:
	$(DOXYGEN) $(DOXYFILE)

# Removes the Doxygen documentation.
docclean:
	@rm -rf $(INT_DOC_PATH)/doxygen/*

# Executes the final binary file using de DATA_PATH as working path.
bin:
	@echo Executing \"$(TARGET)\"...
	@cd $(INT_DATA_PATH) && $(INT_BIN_PATH)/$(TARGET)
	@echo Execution terminated.

# Builds only additional makefiles.
additional:
	$(additional_makes)

# Cleans only additional makefiles.
additionalclean:
	@echo Cleaning additional Makefiles...
	@$(call makeall, clean)
	@echo Proccess finished.

alldeps: $(SRCS) $(DEPS)
	@echo Project files dependencies generated successfully.
	@echo Proccessing additional Makefiles...
	@$(call makeall, deps)
	@echo Proccess finished.

# Removes temporary objects, final binaries and dependency files from the project and related Makefiles.
allclean:
	@echo Cleaning project...
	@rm -rf $(addsuffix /*.o, $(BUILD_DIRS))
	@rm -rf $(addsuffix /*.d, $(BUILD_DIRS))
	@rm -rf $(addsuffix /*~, $(BUILD_DIRS))
	@rm -rf $(INT_BIN_PATH)/$(TARGET)
	@echo Cleaning additional Makefiles...
	@$(call makeall, clean)
	@echo Proccess finished.

# Internal targets. Do NOT use these.

#include $(DEPS)
include $(foreach dir, $(BUILD_DIRS), $(wildcard $(dir)/*.d))

$(INT_BIN_PATH)/$(TARGET):$(OBJS)
	@echo
	@echo $@:$?
	@mkdir -p $(dir $@)
ifeq ($(GENERATE_STATIC_LIBRARY),yes)
	$(AR) $(ARFLAGS) $@ $(OBJS)
else
	$(LD) $(OBJS) $(LDFLAGS) $(addprefix -l,$(LIBRARIES)) $(STATICS) -o $@
endif
ifeq ($(STRIP_TARGET),yes)
	$(STRIP) $@
endif

# Makefile Makefile.config
$(INT_BUILD_PATH)/%.o: $(INT_SRC_PATH)/%.cpp
	@echo
	@echo $@:$?
	@mkdir -p $(dir $@)
	$(CXX) -c $(CXXFLAGS) $(addprefix -I,$(INCLUDE_DIRS)) $(filter %.cpp,$^) -o $@

$(INT_BUILD_PATH)/%.o: $(INT_SRC_PATH)/%.c
	@echo
	@echo $@:$?
	@mkdir -p $(dir $@)
	$(CC) -c $(CCFLAGS) $(addprefix -I,$(INCLUDE_DIRS)) $(filter %.c,$^) -o $@

$(INT_BUILD_PATH)/%.d: $(INT_SRC_PATH)/%.cpp
	@echo
	@echo $@:$?
	@mkdir -p $(dir $@)
	$(CXX) -MM -MT $(patsubst %.d, %.o, $@) -MF $@ $(addprefix -I,$(INCLUDE_DIRS)) $(INT_SRC_PATH)/$*.cpp > /dev/null
#	$(CXX) -MM -o $@ $(addprefix -I,$(INCLUDE_DIRS)) $(INT_SRC_PATH)/$*.cpp > /dev/null

$(INT_BUILD_PATH)/%.d: $(INT_SRC_PATH)/%.c
	@echo
	@echo $@:$?
	@mkdir -p $(dir $@)
	$(CC) -MM -MT $(patsubst %.d, %.o, $@) -MF $@ $(addprefix -I,$(INCLUDE_DIRS)) $(INT_SRC_PATH)/$*.c > /dev/null
#	$(CC) -MM -o $@ $(addprefix -I,$(INCLUDE_DIRS)) $(INT_SRC_PATH)/$*.c > /dev/null

define additional_makes
@echo Searching and executing additional Makefiles...
@$(call makeall, )
@echo Proccess finished.
endef

makeall=$(foreach dir, $(MAKEFILE_PATHS), \
		echo Entering into \'$(dir)\'...; \
		if [ -d $(dir) ]; then \
			cd $(dir); \
			if [ -f Makefile ]; then \
				make $(1); \
			else \
				echo Warning: Makefile not found in directory \'$(dir)\'.; \
			fi; \
			cd $(PROJECT_PATH); \
		else \
			echo Warning: Directory \'$(dir)\' not found.; \
		fi;)

start_message:
	@echo
	@echo Starting build process...
	@echo "  Architecture: $(ARCH)"
	@echo "  Profile: $(PROFILE)"
	@echo
	@echo Directories:
	@echo "  PROJECT: $(PROJECT_PATH)"
	@echo "  BIN: $(INT_BIN_PATH)"
	@echo "  BUILD: $(INT_BUILD_PATH)"
	@echo "  SRC: $(INT_SRC_PATH)"
	@echo "  DOC: $(INT_DOC_PATH)"
	@echo "  DIST: $(INT_DIST_PATH)"
	@echo "  DATA: $(INT_DATA_PATH)"
	@echo
	@echo Target:
	@echo "  $(TARGET)"
	@echo
	@echo Source files:
	@$(foreach file, $(SRCS), echo "  $(file)";)
	@echo
	@echo Object files:
	@$(foreach file, $(OBJS), echo "  $(file)";)
	@echo
	@echo


text:
module Dom
  module Admin
    class Membership < Domino
      selector '.memberships tbody tr'

      attribute :entry_title, 'td.col-entry'
      attribute :user_full_name, 'td.name'

    end
  end
end


text:
BSLS_IDENT("$Id: $")

//@PURPOSE: Provide consistent interface for platform-dependent functionality.
//
//@INTERNAL_DEPRECATED: Use 'bsls_alignmentutil', 'bsls_byteorder',
// 'bsls_platform', and 'bsls_types' instead.
//
//@CLASSES:
//  bsls::PlatformUtil: namespace for platform-neutral type names and API
//
//@MACROS:
//  BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN: flag set on little-endian platforms
//  BSLS_PLATFORMUTIL_IS_BIG_ENDIAN:    flag set on    big-endian platforms
//  BSLS_PLATFORMUTIL_HTONS(x): convert 16-bit from host to network byte order
//  BSLS_PLATFORMUTIL_HTONL(x): convert 32-bit from host to network byte order
//  BSLS_PLATFORMUTIL_NTOHS(x): convert 16-bit from network to host byte order
//  BSLS_PLATFORMUTIL_NTOHL(x): convert 32-bit from network to host byte order
//
//@SEE_ALSO: bsls_platform, bsls_types
//
//@DESCRIPTION: This component provides a namespace for a set of 'typedef's and
// functions that provide a stable, portable interface to platform-dependent
// functionality.  In particular, this component supplies portable typenames
// for signed and unsigned 64-bit integers, and provides compile-time
// preprocessor macros that characterize the "endian-ness" of the underlying
// processor on the current platform.  Runtime functionality to return the
// "endian-ness", and to round up to a multiple of the maximum required
// alignment for the processor, are also provided.
//
///Usage
///-----
// The following illustrates how some of the types and functions supplied by
// this component might be used.
//
///Types
///- - -
// 'bsls::PlatformUtil::Int64' and 'bsls::PlatformUtil::Uint64' identify the
// preferred fundamental types denoting signed and unsigned 64-bit integers,
// respectively:
//..
//  bsls::PlatformUtil::Uint64 stimulus = 787000000000ULL;
//..
// Clients can use these types in the same way as an 'int'.  Clients can also
// mix usage with other fundamental integral types:
//..
//  bsls::PlatformUtil::Uint64 nationalDebt = 1000000000000ULL;
//  nationalDebt += stimulus;
//
//  unsigned int deficitReduction = 1000000000;
//  nationalDebt -= deficitReduction;
//
//  std::cout << "National Debt Level: " << nationalDebt << std::endl;
//..
// 'bsls::PlatformUtil::size_type' identifies the preferred integral type
// denoting the number of elements in a container, and the number of bytes in a
// single block of memory supplied by an allocator.  For example, a typical use
// is as a 'typedef' in an STL container:
//..
//  class vector {
//
//      // ...
//
//    public:
//      typedef bsls::PlatformUtil::size_type size_type;
//
//      // ...
//  };
//..
//
///Functions and Macros
/// - - - - - - - - - -
// The functions:
//..
//  bool bsls::PlatformUtil::isLittleEndian();
//  bool bsls::PlatformUtil::isBigEndian();
//..
// encapsulate the capability of determining whether a machine is big- or
// little-endian across all supported platforms.  In addition, certain
// compile-time constants are also provided as preprocessor macros to
// facilitate conditional compilation:
//..
//  BSLS_PLATFORMUTIL_IS_BIG_ENDIAN
//  BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN
//..
// These functions and macros are useful for writing platform-independent code,
// such as a function that converts the bytes in a 'short' to network byte
// order (which is consistent with big-endian):
//..
//  short convertToNetworkByteOrder(short input)
//      // Return the specified 'input' in network byte order.
//  {
//  #ifdef BSLS_PLATFORMUTIL_IS_BIG_ENDIAN
//      return input;
//  #else
//      return static_cast<short>(
//                              ((input >> 8) & 0xFF) | ((input & 0xFF) << 8));
//  #endif
//  }
//..
// Note that in the above usage example, either the macros or the functions can
// be used to test whether a platform is big- or little-endian.

#ifdef BDE_OPENSOURCE_PUBLICATION // DEPRECATED
#error "bsls_platformutil is deprecated"
#endif
#include <bsls_alignmentutil.h>
#include <bsls_platform.h>
#include <bsls_types.h>

#include <cstddef>

namespace BloombergLP {

namespace bsls {

                          // ===================
                          // struct PlatformUtil
                          // ===================

struct PlatformUtil {
    // Provide a namespace for a suite of 'typedef's and pure procedures that
    // encapsulate, platform-dependent types and APIs.

    // TYPES
    typedef Types::size_type size_type;
        // The alias 'size_type' refers to the preferred type for denoting a
        // number of elements in either 'bslma' allocators or container types.
        // Note that this type is signed, as negative values may make sense in
        // certain contexts.  Also note that the standard-compliant allocators
        // (e.g., 'bsl::allocator' and 'std::allocator') use an *unsigned*
        // size type, but that is fine because they also have a mechanism
        // ('max_size') to determine overflows resulting from converting from
        // one size type to the other.
        //
        // DEPRECATED: Use 'Types::size_type' instead.

    typedef Types::UintPtr UintPtr;
    typedef Types::IntPtr  IntPtr;
        // The aliases 'UintPtr' and 'IntPtr' are guaranteed to have the same
        // size as pointers.
        //
        // DEPRECATED: Use 'Types::UintPtr' and 'Types::IntPtr' instead.

    typedef Types::Int64  Int64;
    typedef Types::Uint64 Uint64;
        // The aliases 'Int64' and 'Uint64' stand for whatever type 'Types'
        // implements for the appropriate supported platforms.
        //
        // DEPRECATED: Use 'Types::Int64' and 'Types::Uint64' instead.

#ifndef BDE_OMIT_INTERNAL_DEPRECATED
    typedef AlignmentUtil::MaxAlignedType MaxAlign;
        // The alias 'MaxAlign' refers to a type that is maximally-aligned on
        // the current platform.
        //
        // DEPRECATED: Use 'AlignmentUtil::MaxAlignedType' instead.
#endif // BDE_OMIT_INTERNAL_DEPRECATED

    // CLASS METHODS
    static bool isBigEndian();
        // Return 'true' if this platform is "big-endian", and 'false'
        // otherwise.  Note that "big-endian" (i.e., the most significant byte
        // of data at the lowest byte address) is consistent with network byte
        // order.
        //
        // DEPRECATED: Use preprocessor macro 'BSLS_PLATFORM_IS_BIG_ENDIAN'
        // defined in 'bsls_platform' instead.

    static bool isLittleEndian();
        // Return 'true' if this platform is "little-endian", and 'false'
        // otherwise.  Note that "little-endian" (i.e., the least significant
        // byte of data at the lowest byte address) is inconsistent with
        // network byte order.
        //
        // DEPRECATED: Use preprocessor macro
        // 'BSLS_PLATFORMUTIL_IS_BIG_ENDIAN' defined in 'bsls_platform'
        // instead.

    static int roundUpToMaximalAlignment(int size);
        // Return the specified 'size' (in bytes) rounded up to the smallest
        // integral multiple of the maximum alignment.  The behavior is
        // undefined unless '0 <= size'.
        //
        // DEPRECATED: Use 'AlignmentUtil::roundUpToMaximalAlignment' instead.
};

}  // close package namespace

// ============================================================================
//                 COMPILE-TIME CONSTANT PRE-PROCESSOR MACROS
// ============================================================================

// The following preprocessor macros are DEPRECATED.  Please use their
// replacements in 'bsls_byteorder' and 'bsls_platform' instead.

#if defined(BSLS_PLATFORM_CPU_X86_64)
    #define BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN BSLS_PLATFORM_IS_LITTLE_ENDIAN
        // DEPRECATED: Use preprocessor macro 'BSLS_PLATFORM_IS_LITTLE_ENDIAN'
        // defined in 'bsls_platform' instead.
#endif

#if defined(BSLS_PLATFORM_CPU_X86)
    #define BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN \
                                                BSLS_PLATFORM_IS_LITTLE_ENDIAN
        // DEPRECATED: Use preprocessor macro 'BSLS_PLATFORM_IS_LITTLE_ENDIAN'
        // defined in 'bsls_platform' instead.
#endif

#if !defined(BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN)
   #define BSLS_PLATFORMUTIL_IS_BIG_ENDIAN BSLS_PLATFORM_IS_BIG_ENDIAN
       // DEPRECATED: Use preprocessor macro 'BSLS_PLATFORM_IS_BIG_ENDIAN'
       // defined in 'bsls_platform' instead.
#endif

#ifndef BDE_OMIT_INTERNAL_DEPRECATED

#if defined(BSLS_PLATFORMUTIL_IS_BIG_ENDIAN)
#define BSLS_PLATFORMUTIL_HTONL(x) (x)
#define BSLS_PLATFORMUTIL_HTONS(x) (x)
#define BSLS_PLATFORMUTIL_NTOHL(x) (x)
#define BSLS_PLATFORMUTIL_NTOHS(x) (x)
    // DEPRECATED: Use preprocessor macros 'BSLS_BYTEORDER_*TO*' defined in
    // 'bsls_byteorder' instead.
#else
    // Use built-in if using gcc 4.3.

#if (defined(BSLS_PLATFORM_CMP_GNU) && BSLS_PLATFORM_CMP_VER_MAJOR >= 40300) \
 || defined(BSLS_PLATFORM_CMP_CLANG)
#define BSLS_PLATFORMUTIL_NTOHL(x) (unsigned) __builtin_bswap32(x)
#else
#define BSLS_PLATFORMUTIL_NTOHL(x) \
                   ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
                   (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
#endif
#define BSLS_PLATFORMUTIL_HTONL(x) BSLS_PLATFORMUTIL_NTOHL(x)
#define BSLS_PLATFORMUTIL_NTOHS(x) \
                                    ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
#define BSLS_PLATFORMUTIL_HTONS(x) BSLS_PLATFORMUTIL_NTOHS(x)
#endif

#endif // BDE_OMIT_INTERNAL_DEPRECATED

namespace bsls {

// ============================================================================
//                        INLINE FUNCTION DEFINITIONS
// ============================================================================

                          // -------------------
                          // struct PlatformUtil
                          // -------------------

// CLASS METHODS
inline
bool PlatformUtil::isLittleEndian()
{
#if defined(BSLS_PLATFORM_IS_LITTLE_ENDIAN)
    return BSLS_PLATFORM_IS_LITTLE_ENDIAN;
#else
    return false;
#endif
}

inline
bool PlatformUtil::isBigEndian()
{
#if defined(BSLS_PLATFORM_IS_BIG_ENDIAN)
    return BSLS_PLATFORM_IS_BIG_ENDIAN;
#else
    return false;
#endif
}

inline
int PlatformUtil::roundUpToMaximalAlignment(int size)
{
    enum { BSLS_MAX_ALIGN = AlignmentUtil::BSLS_MAX_ALIGNMENT };
    return ((size + BSLS_MAX_ALIGN - 1) / BSLS_MAX_ALIGN) * BSLS_MAX_ALIGN;
}

}  // close package namespace

#ifndef BDE_OPENSOURCE_PUBLICATION  // BACKWARD_COMPATIBILITY
// ============================================================================
//                           BACKWARD COMPATIBILITY
// ============================================================================

typedef bsls::PlatformUtil bsls_PlatformUtil;
    // This alias is defined for backward compatibility.
#endif  // BDE_OPENSOURCE_PUBLICATION -- BACKWARD_COMPATIBILITY

}  // close enterprise namespace

#if !defined(BSL_DOUBLE_UNDERSCORE_XLAT) || 1 == BSL_DOUBLE_UNDERSCORE_XLAT

#ifdef BSLS_PLATFORMUTIL_IS_BIG_ENDIAN
# define BSLS_PLATFORMUTIL__IS_BIG_ENDIAN BSLS_PLATFORMUTIL_IS_BIG_ENDIAN
#endif
#ifdef BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN
# define BSLS_PLATFORMUTIL__IS_LITTLE_ENDIAN BSLS_PLATFORMUTIL_IS_LITTLE_ENDIAN
#endif
#define BSLS_PLATFORMUTIL__HTONL(x) BSLS_PLATFORMUTIL_HTONL(x)
#define BSLS_PLATFORMUTIL__HTONS(x) BSLS_PLATFORMUTIL_HTONS(x)
#define BSLS_PLATFORMUTIL__NTOHL(x) BSLS_PLATFORMUTIL_NTOHL(x)
#define BSLS_PLATFORMUTIL__NTOHS(x) BSLS_PLATFORMUTIL_NTOHS(x)

#endif

#endif

// ----------------------------------------------------------------------------
// Copyright 2013 Bloomberg Finance L.P.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ----------------------------- END-OF-FILE ----------------------------------


text:
using blink::WebAutofillState;
using blink::WebConsoleMessage;
using blink::WebDocument;
using blink::WebElement;
using blink::WebFormControlElement;
using blink::WebFormElement;
using blink::WebInputElement;
using blink::WebLocalFrame;
using blink::WebNode;
using blink::WebSelectElement;
using blink::WebString;
using blink::WebVector;

namespace autofill {

namespace {

blink::FormElementPiiType MapTypePredictionToFormElementPiiType(
    base::StringPiece type) {
  if (type == "NO_SERVER_DATA" || type == "UNKNOWN_TYPE" ||
      type == "EMPTY_TYPE" || type == "") {
    return blink::FormElementPiiType::kUnknown;
  }

  if (base::StartsWith(type, "EMAIL_"))
    return blink::FormElementPiiType::kEmail;
  if (base::StartsWith(type, "PHONE_"))
    return blink::FormElementPiiType::kPhone;
  return blink::FormElementPiiType::kOthers;
}

void LogDeprecationMessages(const WebFormControlElement& element) {
  std::string autocomplete_attribute =
      element.GetAttribute("autocomplete").Utf8();

  static const char* const deprecated[] = {"region", "locality"};
  for (const char* str : deprecated) {
    if (autocomplete_attribute.find(str) == std::string::npos)
      continue;
    std::string msg = base::StrCat(
        {"autocomplete='", str,
         "' is deprecated and will soon be ignored. See http://goo.gl/YjeSsW"});
    WebConsoleMessage console_message = WebConsoleMessage(
        blink::mojom::ConsoleMessageLevel::kWarning, WebString::FromASCII(msg));
    element.GetDocument().GetFrame()->AddMessageToConsole(console_message);
  }
}

// Determines whether the form is interesting enough to be sent to the browser
// for further operations. This is the case if any of the below holds:
// (1) At least one field is editable.
// (2) At least one field has a non-empty autocomplete attribute.
// (3) There is at least one iframe.
bool IsFormInteresting(const FormData& form, size_t num_editable_elements) {
  DCHECK_GE(form.fields.size(), num_editable_elements);
  return num_editable_elements >= 1 || !form.child_frames.empty() ||
         base::ranges::any_of(form.fields, base::not_fn(&std::string::empty),
                              &FormFieldData::autocomplete_attribute);
}

}  // namespace

FormCache::UpdateFormCacheResult::UpdateFormCacheResult() = default;
FormCache::UpdateFormCacheResult::UpdateFormCacheResult(
    UpdateFormCacheResult&&) = default;
FormCache::UpdateFormCacheResult& FormCache::UpdateFormCacheResult::operator=(
    UpdateFormCacheResult&&) = default;
FormCache::UpdateFormCacheResult::~UpdateFormCacheResult() = default;

FormCache::FormCache(WebLocalFrame* frame) : frame_(frame) {}
FormCache::~FormCache() = default;

FormCache::UpdateFormCacheResult FormCache::UpdateFormCache(
    const FieldDataManager* field_data_manager) {
  initial_checked_state_.clear();
  initial_select_values_.clear();

  std::set<FieldRendererId> observed_unique_renderer_ids;

  // Log an error message for deprecated attributes, but only the first time
  // the form is parsed.
  bool log_deprecation_messages = parsed_forms_.empty();

  // |parsed_forms_| is re-populated below in ProcessForm().
  std::map<FormRendererId, FormData> old_parsed_forms =
      std::move(parsed_forms_);
  parsed_forms_.clear();

  UpdateFormCacheResult r;
  r.removed_forms = base::MakeFlatSet<FormRendererId>(
      old_parsed_forms, {}, &std::pair<const FormRendererId, FormData>::first);

  size_t num_fields_seen = 0;
  size_t num_frames_seen = 0;

  // Helper function that stores new autofillable forms in |forms|. Returns
  // false iff the total number of fields exceeds |kMaxParseableFields|. Clears
  // |form|'s FormData::child_frames if the total number of frames exceeds
  // kMaxParseableChildFrames.
  auto ProcessForm =
      [&](FormData form,
          const std::vector<WebFormControlElement>& control_elements) {
        for (const auto& field : form.fields)
          observed_unique_renderer_ids.insert(field.unique_renderer_id);

        num_fields_seen += form.fields.size();
        num_frames_seen += form.child_frames.size();

        // Enforce the kMaxParseableFields limit: ignore all forms after this
        // limit has been reached (i.e., abort parsing).
        if (num_fields_seen > kMaxParseableFields)
          return false;

        // Enforce the kMaxParseableChildFrames limit: ignore the iframes, but
        // do not ignore the fields (i.e., continue parsing).
        if (num_frames_seen > kMaxParseableChildFrames)
          form.child_frames.clear();

        size_t num_editable_elements =
            ScanFormControlElements(control_elements, log_deprecation_messages);

        // Store only forms that contain iframes or fields.
        if (IsFormInteresting(form, num_editable_elements)) {
          FormRendererId form_id = form.unique_renderer_id;
          DCHECK(parsed_forms_.find(form_id) == parsed_forms_.end());
          auto it = old_parsed_forms.find(form_id);
          if (it == old_parsed_forms.end() ||
              !FormData::DeepEqual(std::move(it->second), form)) {
            SaveInitialValues(control_elements);
            r.updated_forms.push_back(form);
          }
          r.removed_forms.erase(form_id);
          parsed_forms_[form_id] = std::move(form);
        }
        return true;
      };

  constexpr form_util::ExtractMask extract_mask =
      static_cast<form_util::ExtractMask>(form_util::EXTRACT_VALUE |
                                          form_util::EXTRACT_OPTIONS);

  WebDocument document = frame_->GetDocument();
  if (document.IsNull())
    return r;

  for (const WebFormElement& form_element : document.Forms()) {
    FormData form;
    if (!WebFormElementToFormData(form_element, WebFormControlElement(),
                                  field_data_manager, extract_mask, &form,
                                  nullptr)) {
      continue;
    }
    if (!ProcessForm(
            std::move(form),
            form_util::ExtractAutofillableElementsInForm(form_element))) {
      PruneInitialValueCaches(observed_unique_renderer_ids);
      return r;
    }
  }

  // Look for more parseable fields outside of forms. Create a synthetic form
  // from them.
  std::vector<WebElement> fieldsets;
  std::vector<WebFormControlElement> control_elements =
      form_util::GetUnownedAutofillableFormFieldElements(document, &fieldsets);
  std::vector<WebElement> iframe_elements =
      form_util::GetUnownedIframeElements(document);

  FormData synthetic_form;
  if (!UnownedFormElementsAndFieldSetsToFormData(
          fieldsets, control_elements, iframe_elements, nullptr, document,
          field_data_manager, extract_mask, &synthetic_form, nullptr)) {
    PruneInitialValueCaches(observed_unique_renderer_ids);
    return r;
  }
  if (!ProcessForm(std::move(synthetic_form), control_elements)) {
    PruneInitialValueCaches(observed_unique_renderer_ids);
    return r;
  }

  PruneInitialValueCaches(observed_unique_renderer_ids);
  return r;
}

void FormCache::Reset() {
  synthetic_form_ = FormData();
  parsed_forms_.clear();
  initial_select_values_.clear();
  initial_checked_state_.clear();
  fields_eligible_for_manual_filling_.clear();
}

void FormCache::ClearElement(WebFormControlElement& control_element,
                             const WebFormControlElement& trigger_element) {
  // Don't modify the value of disabled fields.
  if (!control_element.IsEnabled())
    return;

  // Don't clear the fields that were not autofilled.
  if (!control_element.IsAutofilled())
    return;

  if (control_element.AutofillSection() != trigger_element.AutofillSection())
    return;

  if (!form_util::IsAutofillableElement(control_element)) {
    NOTREACHED();
    return;
  }

  WebInputElement web_input_element =
      control_element.DynamicTo<WebInputElement>();
  if (form_util::IsTextInput(web_input_element) ||
      form_util::IsMonthInput(web_input_element)) {
    web_input_element.SetAutofillValue(blink::WebString(),
                                       WebAutofillState::kNotFilled);

    // Clearing the value in the focused node (above) can cause the selection
    // to be lost. We force the selection range to restore the text cursor.
    if (trigger_element == web_input_element) {
      size_t length = web_input_element.Value().length();
      web_input_element.SetSelectionRange(length, length);
    }
  } else if (form_util::IsTextAreaElement(control_element)) {
    control_element.SetAutofillValue(blink::WebString(),
                                     WebAutofillState::kNotFilled);
  } else if (form_util::IsSelectElement(control_element)) {
    WebSelectElement select_element = control_element.To<WebSelectElement>();
    auto initial_value_iter = initial_select_values_.find(
        FieldRendererId(select_element.UniqueRendererFormControlId()));
    if (initial_value_iter != initial_select_values_.end() &&
        select_element.Value().Utf16() != initial_value_iter->second) {
      select_element.SetAutofillValue(
          blink::WebString::FromUTF16(initial_value_iter->second),
          blink::WebAutofillState::kNotFilled);
      select_element.SetUserHasEditedTheField(false);
    } else {
      select_element.SetAutofillState(WebAutofillState::kNotFilled);
    }
  } else if (form_util::IsCheckableElement(web_input_element)) {
    WebInputElement input_element = control_element.To<WebInputElement>();
    auto checkable_element_it = initial_checked_state_.find(
        FieldRendererId(input_element.UniqueRendererFormControlId()));
    if (checkable_element_it != initial_checked_state_.end() &&
        input_element.IsChecked() != checkable_element_it->second) {
      input_element.SetChecked(checkable_element_it->second, true,
                               WebAutofillState::kNotFilled);
    }
  } else {
    NOTREACHED();
  }
}

bool FormCache::ClearSectionWithElement(const WebFormControlElement& element) {
  // The intended behaviour is:
  // * Clear the currently focused element.
  // * Send the blur event.
  // * For each other element, focus -> clear -> blur.
  // * Send the focus event.
  WebFormElement form_element = element.Form();
  std::vector<WebFormControlElement> control_elements =
      form_element.IsNull()
          ? form_util::GetUnownedAutofillableFormFieldElements(
                element.GetDocument(), nullptr)
          : form_util::ExtractAutofillableElementsInForm(form_element);

  if (control_elements.empty())
    return true;

  if (control_elements.size() < 2 && control_elements[0].Focused()) {
    // If there is no other field to be cleared, sending the blur event and then
    // the focus event for the currently focused element does not make sense.
    ClearElement(control_elements[0], element);
    return true;
  }

  WebFormControlElement* initially_focused_element = nullptr;
  for (WebFormControlElement& control_element : control_elements) {
    if (control_element.Focused()) {
      initially_focused_element = &control_element;
      ClearElement(control_element, element);
      // A blur event is emitted for the focused element if it is an initiating
      // element before the clearing happens.
      initially_focused_element->DispatchBlurEvent();
      break;
    }
  }

  for (WebFormControlElement& control_element : control_elements) {
    if (control_element.Focused())
      continue;
    ClearElement(control_element, element);
  }

  // A focus event is emitted for the initiating element after clearing is
  // completed.
  if (initially_focused_element)
    initially_focused_element->DispatchFocusEvent();

  return true;
}

bool FormCache::ShowPredictions(const FormDataPredictions& form,
                                bool attach_predictions_to_dom) {
  DCHECK_EQ(form.data.fields.size(), form.fields.size());

  std::vector<WebFormControlElement> control_elements;

  if (form.data.unique_renderer_id.is_null()) {  // Form is synthetic.
    WebDocument document = frame_->GetDocument();
    control_elements =
        form_util::GetUnownedAutofillableFormFieldElements(document, nullptr);
  } else {
    for (const WebFormElement& form_element : frame_->GetDocument().Forms()) {
      FormRendererId form_id(form_element.UniqueRendererFormId());
      if (form_id == form.data.unique_renderer_id) {
        control_elements =
            form_util::ExtractAutofillableElementsInForm(form_element);
        break;
      }
    }
  }

  if (control_elements.size() != form.fields.size()) {
    // Keep things simple.  Don't show predictions for forms that were modified
    // between page load and the server's response to our query.
    return false;
  }

  PageFormAnalyserLogger logger(frame_);
  for (size_t i = 0; i < control_elements.size(); ++i) {
    WebFormControlElement& element = control_elements[i];

    const FormFieldData& field_data = form.data.fields[i];
    FieldRendererId field_id(element.UniqueRendererFormControlId());
    if (field_id != field_data.unique_renderer_id)
      continue;
    const FormFieldDataPredictions& field = form.fields[i];

    element.SetFormElementPiiType(
        MapTypePredictionToFormElementPiiType(field.overall_type));

    // If the flag is enabled, attach the prediction to the field.
    if (attach_predictions_to_dom) {
      constexpr size_t kMaxLabelSize = 100;
      // TODO(crbug/1165780): Use `parseable_label()` once the feature is
      // launched.
      const std::u16string truncated_label =
          field_data.label.substr(0, kMaxLabelSize);

      std::string form_id =
          base::NumberToString(form.data.unique_renderer_id.value());
      std::string field_id_str =
          base::NumberToString(field_data.unique_renderer_id.value());

      blink::LocalFrameToken frame_token;
      if (auto* frame = element.GetDocument().GetFrame())
        frame_token = frame->GetLocalFrameToken();

      std::string title = base::StrCat({"overall type: ",
                                        field.overall_type,
                                        "\nserver type: ",
                                        field.server_type,
                                        "\nheuristic type: ",
                                        field.heuristic_type,
                                        "\nlabel: ",
                                        base::UTF16ToUTF8(truncated_label),
                                        "\nparseable name: ",
                                        field.parseable_name,
                                        "\nsection: ",
                                        field.section,
                                        "\nfield signature: ",
                                        field.signature,
                                        "\nform signature: ",
                                        form.signature,
                                        "\nform signature in host form: ",
                                        field.host_form_signature,
                                        "\nfield frame token: ",
                                        frame_token.ToString(),
                                        "\nform renderer id: ",
                                        form_id,
                                        "\nfield renderer id: ",
                                        field_id_str});

      WebString kAutocomplete = WebString::FromASCII("autocomplete");
      if (element.HasAttribute(kAutocomplete)) {
        title += "\nautocomplete: " +
                 element.GetAttribute(kAutocomplete).Utf8().substr(0, 100);
      }

      // Set this debug string to the title so that a developer can easily debug
      // by hovering the mouse over the input field.
      element.SetAttribute("title", WebString::FromUTF8(title));

      // Set the same debug string to an attribute that does not get mangled if
      // Google Translate is triggered for the site. This is useful for
      // automated processing of the data.
      element.SetAttribute("autofill-information", WebString::FromUTF8(title));

      element.SetAttribute("autofill-prediction",
                           WebString::FromUTF8(field.overall_type));
    }
  }
  logger.Flush();

  return true;
}

void FormCache::SetFieldsEligibleForManualFilling(
    const std::vector<FieldRendererId>& fields_eligible_for_manual_filling) {
  fields_eligible_for_manual_filling_ = base::flat_set<FieldRendererId>(
      std::move(fields_eligible_for_manual_filling));
}

size_t FormCache::ScanFormControlElements(
    const std::vector<WebFormControlElement>& control_elements,
    bool log_deprecation_messages) {
  size_t num_editable_elements = 0;
  for (const WebFormControlElement& element : control_elements) {
    if (log_deprecation_messages)
      LogDeprecationMessages(element);

    // Save original values of <select> elements so we can restore them
    // when |ClearFormWithNode()| is invoked.
    if (form_util::IsSelectElement(element) ||
        form_util::IsTextAreaElement(element)) {
      ++num_editable_elements;
    } else {
      const WebInputElement input_element = element.To<WebInputElement>();
      if (!form_util::IsCheckableElement(input_element))
        ++num_editable_elements;
    }
  }
  return num_editable_elements;
}

void FormCache::SaveInitialValues(
    const std::vector<WebFormControlElement>& control_elements) {
  for (const WebFormControlElement& element : control_elements) {
    if (form_util::IsSelectElement(element)) {
      const WebSelectElement select_element = element.To<WebSelectElement>();
      initial_select_values_.insert(
          {FieldRendererId(select_element.UniqueRendererFormControlId()),
           select_element.Value().Utf16()});
    } else {
      const WebInputElement input_element =
          element.DynamicTo<WebInputElement>();
      if (form_util::IsCheckableElement(input_element)) {
        initial_checked_state_.insert(
            {FieldRendererId(input_element.UniqueRendererFormControlId()),
             input_element.IsChecked()});
      }
    }
  }
}

void FormCache::PruneInitialValueCaches(
    const std::set<FieldRendererId>& ids_to_retain) {
  auto should_not_retain = [&ids_to_retain](const auto& p) {
    return !base::Contains(ids_to_retain, p.first);
  };
  base::EraseIf(initial_select_values_, should_not_retain);
  base::EraseIf(initial_checked_state_, should_not_retain);
}

}  // namespace autofill


text:
require File.dirname(__FILE__) + '/../../../../test/test_helper'
require File.dirname(__FILE__) + '/testing_helper'

# usually done by rails' autoloading:
require File.dirname(__FILE__) + '/cells/test_cell'
#require File.dirname(__FILE__) + '/helpers/helper_using_cell_helper'

class CellsHelperTest < Test::Unit::TestCase
  include CellsTestMethods

  def self.path_to_test_views
    RAILS_ROOT + "/vendor/plugins/cells/test/views/"
  end

  def test_helper
    cell = HelperUsingCell.new(@controller)

    content = cell.render_state(:state_with_helper_invocation)
    assert_selekt content, "p#stateWithHelperInvocation", "mysterious"
  end

  # currently HelperUsingCellHelper resides in app/helpers/, which sucks.
  def test_auto_helper
    return unless Cell.engines_available?
    cell = HelperUsingCell.new(@controller)

    content = cell.render_state(:state_with_automatic_helper_invocation)
    assert_selekt content, "p#stateWithAutomaticHelperInvocation", "automatic"
  end

  def test_helper_method
    cell = HelperUsingCell.new(@controller)

    content = cell.render_state(:state_with_helper_method_invocation)
    assert_selekt content, "p#stateWithHelperMethodInvocation", "helped by a method"
  end

  def test_helper_with_subclassing
    subclassedcell = HelperUsingSubCell.new(@controller)
    content = subclassedcell.render_state(:state_with_helper_invocation)
    assert_selekt content, "p#stateWithHelperInvocation", "mysterious"
  end

  def test_helper_including_and_cleanup
    # this cell includes a helper, and uses it:
    cell = HelperUsingCell.new(@controller)

    content = cell.render_state(:state_with_helper_invocation)
    assert_selekt content, "p#stateWithHelperInvocation", "mysterious"

    # this cell doesn't include the helper, but uses it anyway, which should
    # produce an error:

    cell = MyTestCell.new(@controller)

#    assert_raises (NameError) do
     assert_raises (ActionView::TemplateError) do
      cell.render_state(:state_with_not_included_helper_method)
    end
  end

  def test_helpers_included_on_different_inheritance_levels
    cell = TwoHelpersIncludingCell.new(@controller)

    c = cell.render_state(:state_with_helper_invocation)
    assert_selekt c, "p#stateWithHelperInvocation", "mysterious"

    c = cell.render_state(:state_using_another_helper)
    assert_selekt c, "p#stateUsingAnotherHelper", "senseless"
  end

  def test_application_helper
    cell = HelperUsingCell.new(@controller)

    c = cell.render_state(:state_using_application_helper)
    assert_selekt c, "p#stateUsingApplicationHelper", "global"
  end
end

module ApplicationHelper
  def application_helper_method
    "global"
  end
end

module CellsTestHelper
  def a_mysterious_helper_method
    "mysterious"
  end
end

module AnotherHelper
  def senseless_helper_method
    "senseless"
  end
end

class HelperUsingCell < Cell::Base

  helper CellsTestHelper

  def state_with_helper_invocation
  end

  def state_with_automatic_helper_invocation
  end

  def state_with_helper_method_invocation
  end

  def state_using_application_helper
  end

protected

  def my_helper_method
    "helped by a method"
  end

  helper_method :my_helper_method
end

class TwoHelpersIncludingCell < HelperUsingCell

  helper AnotherHelper

  def state_using_another_helper
  end
end

class HelperUsingSubCell < HelperUsingCell
end


text:
<!DOCTYPE html>

  <meta charset="UTF-8">
  <title>Galerie :: Atestat Linux</title>
  <link rel="stylesheet" href="style.css">
  <link rel="shortcut icon" href="favicon.png">
  <meta author="Alexandru Dan">
  <meta description='Proiect pentru Atestat la Informatica realizat de Alexandru Dan in 2017 pentru C.N."Anastasescu"'>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <link rel="stylesheet" href="unslider/css/unslider.css">
  <link rel="stylesheet" href="unslider/css/unslider-dots.css">

      Introducere
      Istorie
      Linus Torvalds
      Windows vs Linux
      Galerie
      Bibliografie
      Despre

Galerie

    © 2017 Alexandru Dan. Site realizat pentru Atestat Informatică.


text:
Debian
====================
This directory contains files used to package pivxd/pivx-qt
for Debian-based Linux systems. If you compile pivxd/pivx-qt yourself, there are some useful files here.

## pivx: URI support ##

pivx-qt.desktop  (Gnome / Open Desktop)
To install:

	sudo desktop-file-install pivx-qt.desktop
	sudo update-desktop-database

If you build yourself, you will either need to modify the paths in
the .desktop file or copy or symlink your pivx-qt binary to `/usr/bin`
and the `../../share/pixmaps/pivx128.png` to `/usr/share/pixmaps`

pivx-qt.protocol (KDE)